以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助] 这断代码运行速度怎么提高 『搞定,摆个擂台啦』 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=27977) |
-- 作者:e-png -- 发布时间:2013/1/15 16:28:00 -- [求助] 这断代码运行速度怎么提高 『搞定,摆个擂台啦』 3 万5千行记录运行的结果【快5分钟了】:
我以用不到25秒时间完成了,剩下未标注的1522条记录。现在摆个擂台,超过我的,我就贴上代码,请狐爸给超过我的代码加精啊! 【 完成条件见14楼 用access数据源】 我的系统: Intel(R) Celeron(R) D CPU 3.06GHz 3.06 GHz,1.99 GB 的内存 [此贴子已经被作者于2013-1-17 11:10:47编辑过]
|
-- 作者:lin_hailun -- 发布时间:2013/1/15 16:39:00 -- 这个……楼主,你这段代码想实现什么呢?要从源头入手。 |
-- 作者:e-png -- 发布时间:2013/1/15 16:44:00 -- 就是给r列做个标记 "sbl" . |
-- 作者:lin_hailun -- 发布时间:2013/1/15 16:48:00 -- 以下是引用e-png在2013-1-15 16:44:00的发言: 就是给r列做个标记 "sbl" . 满足什么条件的做标记? |
-- 作者:e-png -- 发布时间:2013/1/15 16:57:00 -- 代码中有条件
|
-- 作者:lin_hailun -- 发布时间:2013/1/15 17:12:00 -- 以下是引用e-png在2013-1-15 16:57:00的发言: 代码中有条件
如果是这样的条件的话,用连接查询吧。连成一张表比较好操作。 cmd.commandText = "select distinct a._Identify from {xxx} a inner join {xxx} b on (a.借方金额 = b.贷方金额 or a.贷方金额 = b.借方金额)" dim dt as datatable = dt.exec dim idxs as string = "" for each dr as datarow in dt idxs &= dr("_Identify") & "," next datatables("xxx").replacefor("_Identify in (" & idxs.TrimEnd(",") & ")") 这样比较好。 |
-- 作者:e-png -- 发布时间:2013/1/15 18:39:00 -- 谢谢lin,但效果差不多。 |
-- 作者:nblwar -- 发布时间:2013/1/15 21:04:00 -- 楼主的代码看起来好像是一张表里的数据啊?直接 IF DR("借方金额") =
DR("贷方金额") THEN
DR("R") = "SBL" END IF 是不是就可以了 ?
[此贴子已经被作者于2013-1-15 21:05:01编辑过]
|
-- 作者:sunsenfeng -- 发布时间:2013/1/15 22:36:00 -- 楼主的判断条件是不是重复了? 根据你的思路,应该按照帮助这样写 With DataTables("ks75xsb") For each dr As DataRow in .DataRows If .Find("借方金额=" & dr("贷方金额")) IsNot Nothing Then lst1.Add(dr) Next End With 如果一定要像楼主那样写的两个判断,那么直接改变一下条件,再添加以下同样结构的代码即可
|
-- 作者:e-png -- 发布时间:2013/1/16 0:01:00 -- 以下是引用nblwar在2013-1-15 21:04:00的发言:
楼主的代码看起来好像是一张表里的数据啊?直接 IF DR("借方金额") = DR("贷方金额") THEN
DR("R") = "SBL"
END IF
是不是就可以了 ? [此贴子已经被作者于2013-1-15 21:05:01编辑过] 借方金额和贷方金额不在同一行呀,老弟... |