Foxtable(狐表)用户栏目专家坐堂 → [求助]跨表填充,增加判断条件后死机(已解决)


  共有4455人关注过本帖平板打印复制链接

主题:[求助]跨表填充,增加判断条件后死机(已解决)

帅哥哟,离线,有人找我吗?
yyzlxc
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1525 积分:10580 威望:0 精华:0 注册:2008/9/24 11:16:00
[求助]跨表填充,增加判断条件后死机(已解决)  发帖心情 Post By:2014/4/2 18:11:00 [只看该作者]

一段代码跨表填充:

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编辑过]

 回到顶部
总数 20 1 2 下一页