以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  求助,一个疑难问题!  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=92760)

--  作者:wandongliang
--  发布时间:2016/11/11 22:57:00
--  求助,一个疑难问题!
假如有两个表,表A和表B,两表中有两个同名列,为“编号”,“标记”。表A中“编号”列值为唯一,而表B有重复。如何才能更快速,更准确的实现这个目的,当表B中大数量的行中,“标记”列值发生变化时,同时表A中编号与表B对应的行,“标记”列内容也随之更新? 目前我总的是find循环查找,但是效率非常慢,而且出错率很好,有没有更好的方法?
--  作者:有点蓝
--  发布时间:2016/11/12 8:57:00
--  
干嘛要循环,一次Find就可以了,参考:http://www.foxtable.com/webhelp/scr/1453.htm

贴出你的代码看看

--  作者:wandongliang
--  发布时间:2016/11/12 11:56:00
--  
If e.DataCol.name = "标记" Then
   Dim br As DataRow
   br = DataTables("会员信息表").find("永久编号 = \'" & e.DataRow("永久编号") &  "\'")
   If br IsNot Nothing Then
      br("标记") = e.NewValue
   End If
End If

--  作者:wandongliang
--  发布时间:2016/11/12 11:58:00
--  
这是代码,但是当几十行,几百行数据同时修改的时候,效率非常低,通常需要一分多钟的时间才能完成,而且我发现其中还存在错误的地方
--  作者:有点蓝
--  发布时间:2016/11/12 12:02:00
--  
可以通过sql更新,具体上例子看看

或者不用事件,保存后用再另外处理

[此贴子已经被作者于2016/11/12 12:03:14编辑过]