你好,老师,这个问题已经找到原因了,但是还是没有解决方案,所以还请老师帮忙看看如何解决,代码如下:
If e.Table.Current Is Nothing Or DataTables(e.Table.Name).DataCols.Contains("乙方")=False Then
Tables("产值情况_Table1").Filter = "[乙方] = ''"
Forms("产值情况").Text= "产值情况:当前未选定有效行"
Else
If RibbonTabs("Common").Groups("审核").Items("单合同显示").Pressed Then
SQLStr=SQLStr & " and [本月应付款] <> '0' and [是否增量]=false and [是否预估数]=false"
SQLStr=SQLStr
Tables("产值情况_Table1").Filter = SQLStr & " and ([本月应付款] <> '0' or [申报产值]<>'0' ) and [是否预估数]=false" & ZLMode
Tables("产值情况_Table1").Sort ="所属期间 DESC"
Forms("产值情况").Text= "单合同-产值情况"
Else
Tables("产值情况_Table1").Filter = "[乙方] = '" & e.Table.Current("乙方") & "'" _
& " and [本月应付款] <> '0' and [是否增量]=false and [是否预估数]=false"
Tables("产值情况_Table1").Filter = "[乙方] = '" & e.Table.Current("乙方") & "'" _
& " and ( [本月应付款] <> '0' or [申报产值]<>'0' ) And [是否预估数]=false" & ZLMode
MessageBox.Show(Tables("产值情况_Table1").Filter)
' Tables("产值情况_Table1").Sort ="所属期间 DESC"
Forms("产值情况").Text= "全部合同-产值情况"
End If
End If
我的代码如上,代码走到红色的地方时候报错,报错的条件是我删除了关键表的最后一条数据,代码在CurrentChanged 中,删除数据肯定触发了CurrentChanged,但是此时再去访问e.Table.Current("乙方"),显然是不可能的,因为此行已经被删除了
所以代码报错了,请问老师我该如何去判断e.Table.Current 是否存在呢?
这是一个简单的例子,我就没有做取值过滤了,直接用的弹窗来使问题重现。