一段代码,就是 遍历所有的 Table ,判断 它的主窗口是否打开,如果没有打开,则打开
(第一段代码)
For Each aTable As Table In Tables
If aTable.DataTable.Type = 3 OrElse aTable.DataTable.Type = 4 Then '仅仅针对外部表, 根据权限显示
'aTable.visible = True
Functions.Execute("打开主窗口",aTable.name & "主窗口") // 打开主窗口的代码如下
End If
Next
打开主窗口的代码如下:(第二段代码)
Dim FormName As String = args(0)
Try
If Forms.contains(FormName) Then
If Forms(FormName).Opened = False Then
Forms(FormName).Open //注意这里, 如果主句 注释掉,不执行, 则不会保存, 执行,则报以下错误
End If
End If
Catch ex As Exception
MessageBox.Show( FormName & "出错 " & ex.ToString)
End Try
报错误如下:
此主题相关图片如下:1234.png
从报错的内容看,并不是 在第二段代码报的错误,而是在第一段代码里报的
好像是 执行 Forms(FormName).Open 时, 引发了 Tables 集合的改变,而导致第一段执行错误,不能继续遍历下去了
那么 Forms(FormName).Open 只是打开窗口,怎么会引起 Tables 集合的改变呢? 该怎么样避免呢?
[此贴子已经被作者于2017/7/13 21:31:32编辑过]