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


  共有4489人关注过本帖树形打印复制链接

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

帅哥哟,离线,有人找我吗?
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编辑过]

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


加好友 发短信
等级:七尾狐 帖子:1525 积分:10580 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2014/4/2 20:01:00 [显示全部帖子]

做了一个案例,先单击”短代码“按钮,运行正常,然后单击”长代码“按钮,运行正常,符合需要的效果。
但是打开项目后,如果直接单击”长代码“按钮,就会死机,请各位老师指教,谢谢!!

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:案列.foxdb




[此贴子已经被作者于2014-4-2 20:02:20编辑过]

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


加好友 发短信
等级:七尾狐 帖子:1525 积分:10580 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2014/4/3 9:07:00 [显示全部帖子]

谢谢e-png和有点甜两位老师的回复和指教!

两种方法试了一下,e-png老师的方法好像不见效,而有点甜老师的sql语句有点看不懂,难以理解,执行的效果可能会有问题:
1、变动日期的条件是<=,式中为=?
2、取值为变动日期的倒序,式中好像没有体现?
需要在完整的项目中进行测试。还是要再次感谢两位老师的热情帮助!!

另:跨表填充的代码比较直观,效率也可以接受,使用率很高,出现上述的问题,应该要想办法解决。

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


加好友 发短信
等级:七尾狐 帖子:1525 积分:10580 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2014/4/3 9:18:00 [显示全部帖子]

e-png老师,您的方法试了一下,好像不见效,还是我的理解问题?请指教,谢谢。

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


加好友 发短信
等级:七尾狐 帖子:1525 积分:10580 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2014/4/3 10:39:00 [显示全部帖子]

Bin老师,能否帮助看一下,谢谢!

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


加好友 发短信
等级:七尾狐 帖子:1525 积分:10580 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2014/4/3 11:26:00 [显示全部帖子]

回Bin老师:好像不是吧,先运行短代码,然后运行长代码N次,都很快,4秒左右。但是打开项目,直接运行长代码,就死机,不止2分钟的。

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


加好友 发短信
等级:七尾狐 帖子:1525 积分:10580 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2014/4/3 13:26:00 [显示全部帖子]

谢谢wjl-se老师和Bin老师的新方案,经测试还是存在问题,重新做了一个案例上传。
以编号3316027352为例,正确的效果是
日期>=2013-11-12  监区为入监监区
日期>=2013-12-18  监区为后勤监区
日期>=2014-03-19  监区为一监区
但是新代码日期<2014-03-19时,监区为空。
如何调整代码获得正确效果,请各位老师指教,谢谢。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:新案列.foxdb





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


加好友 发短信
等级:七尾狐 帖子:1525 积分:10580 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2014/4/3 13:50:00 [显示全部帖子]

谢谢e-png老师的回复,代码测试,符合要求,速度也正常,解决了大问题,再次衷心感谢e-png老师的热心帮助!!

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


加好友 发短信
等级:七尾狐 帖子:1525 积分:10580 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2014/4/3 13:56:00 [显示全部帖子]

 为什么加pr = DataTables("变动日期").Find("编号 = '' ") 这段代码,问题就解决了,没有道理啊,不会是Foxtable的一个bug吧。

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


加好友 发短信
等级:七尾狐 帖子:1525 积分:10580 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2014/4/3 14:10:00 [显示全部帖子]

谢谢甜老师的回复,同样运行正常,符合所需的效果,多了一个方案,代码还需要消化一下,收藏了。谢谢甜老师。

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