以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]代码效率的问题,求思路和方法  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=144161)

--  作者:爱好所有
--  发布时间:2019/12/12 14:16:00
--  [求助]代码效率的问题,求思路和方法
如下图这种遍历和赋值,不是同一个表数据量又大(3万多条)如何写代码有效率呢?这样写代码每次都要20分钟左右。

图片点击可在新窗口打开查看此主题相关图片如下:mmexport1576131343944.jpg
图片点击可在新窗口打开查看


--  作者:有点蓝
--  发布时间:2019/12/12 14:38:00
--  
看看:http://www.foxtable.com/webhelp/topics/2225.htm

数据多建议使用sql直接更新:http://www.foxtable.com/webhelp/topics/0690.htm

--  作者:爱好所有
--  发布时间:2019/12/12 14:47:00
--  
谢谢!帮助的查询和赋值我看过是同一表才行,看样子要学SQL代码写法了,如果直接用SQL代码会快些吗?
--  作者:有点蓝
--  发布时间:2019/12/12 14:56:00
--  
快非常多,3W行数据估计不到1秒。没看错,不到1秒
--  作者:爱好所有
--  发布时间:2019/12/14 13:03:00
--  
我去看了一下SQL方法,一时间也写不出来,有点大师能帮我写一下这种代码的SQL代码吗?这种遍历查询判断后赋值的SQL代码真写不来,我想做个例子好快速掌握使用,谢谢!
[此贴子已经被作者于2019/12/14 13:12:15编辑过]

--  作者:有点蓝
--  发布时间:2019/12/14 13:28:00
--  
请上传实例说明。sql比如

update 表A set 表A.第一列=表B.第一列 from 表A inner join 表B where 表A.编号=表B.编号 and 表A.第一列 isnot null

--  作者:pyh6918
--  发布时间:2019/12/14 15:43:00
--  
我也是这个方法遍历,我发现了一个有趣的现象,在代码执行的时候,当前表如果不是被遍历的表,那么速度会提高一大截。(可能是绘制浪费时间)

最好在FOR EACH内加入Application.DoEvents,并用一个标签记数,可以直观的看到进度。

--  作者:爱好所有
--  发布时间:2019/12/14 23:34:00
--  
有点大师SQL代码有个错误,不应该where而是on
[此贴子已经被作者于2019/12/14 23:37:24编辑过]