一段代码跨表填充:
For Each dr As DataRow In DataTables("在册名单").DataRows
Dim pr As DataRow
If dr.IsNull("编号") Then
dr("单位") = Nothing
Else
pr = DataTables("变动日期").Find("编号 = '" & dr("编号") & "' And 变动日期 <= '" & rq & "'","变动日期 Desc")
If pr IsNot Nothing Then
dr("监区") = pr("监区")
dr("单位") = pr("单位")
dr("变动日期") = pr("变动日期")
End If
End If
Next
运行后死机,折腾半天,找到规律:先将代码改成 pr = DataTables("变动日期").Find("编号 = '" & dr("编号") & "'")
运行正常,然后再改回原来的代码,运行达到效果,但是重新打开项目,在运行原来的代码,依旧死机。
现在用一个笨办法,就是先运行短代码,然后运行长代码,就不会出现死机,但感觉不爽,请各位老师帮助支招,谢谢。
现在运行的代码如下:
For Each dr As DataRow In DataTables("在册名单").DataRows
Dim pr As DataRow
If dr.IsNull("编号") Then
dr("单位") = Nothing
Else
pr = DataTables("变动日期").Find("编号 = '" & dr("编号") & "'")
If pr IsNot Nothing Then
dr("监区") = pr("监区")
dr("单位") = pr("单位")
dr("变动日期") = pr("变动日期")
End If
End If
Next
For Each dr As DataRow In DataTables("在册名单").DataRows
Dim pr As DataRow
If dr.IsNull("编号") Then
dr("单位") = Nothing
Else
pr = DataTables("变动日期").Find("编号 = '" & dr("编号") & "' And 变动日期 <= '" & rq & "'","变动日期 Desc")
If pr IsNot Nothing Then
dr("监区") = pr("监区")
dr("单位") = pr("单位")
dr("变动日期") = pr("变动日期")
End If
End If
Next
[此贴子已经被作者于2014-4-3 13:57:42编辑过]