Foxtable(狐表)用户栏目专家坐堂 → [求助] 这断代码运行速度怎么提高 『搞定,摆个擂台啦』


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

主题:[求助] 这断代码运行速度怎么提高 『搞定,摆个擂台啦』

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


加好友 发短信
等级:七尾狐 帖子:1695 积分:10725 威望:0 精华:0 注册:2009/10/25 16:45:00
[求助] 这断代码运行速度怎么提高 『搞定,摆个擂台啦』  发帖心情 Post By:2013/1/15 16:28:00 [显示全部帖子]

3 万5千行记录运行的结果【快5分钟了】:  

 


此主题相关图片如下:未命名dic.jpg
按此在新窗口浏览图片

 

我以用不到25秒时间完成了,剩下未标注的1522条记录。现在摆个擂台,超过我的,我就贴上代码,请狐爸给超过我的代码加精啊!

                               【  完成条件见14楼 用access数据源】

我的系统:

Intel(R) Celeron(R) D CPU 3.06GHz

3.06 GHz,1.99 GB 的内存

[此贴子已经被作者于2013-1-17 11:10:47编辑过]

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


加好友 发短信
等级:七尾狐 帖子:1695 积分:10725 威望:0 精华:0 注册:2009/10/25 16:45:00
  发帖心情 Post By:2013/1/15 16:44:00 [显示全部帖子]

就是给r列做个标记 "sbl" .

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


加好友 发短信
等级:七尾狐 帖子:1695 积分:10725 威望:0 精华:0 注册:2009/10/25 16:45:00
  发帖心情 Post By:2013/1/15 16:57:00 [显示全部帖子]

代码中有条件

 


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


加好友 发短信
等级:七尾狐 帖子:1695 积分:10725 威望:0 精华:0 注册:2009/10/25 16:45:00
  发帖心情 Post By:2013/1/15 18:39:00 [显示全部帖子]

谢谢lin,但效果差不多。 

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


加好友 发短信
等级:七尾狐 帖子:1695 积分:10725 威望:0 精华:0 注册:2009/10/25 16:45:00
  发帖心情 Post By: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编辑过]

借方金额和贷方金额不在同一行呀,老弟...


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


加好友 发短信
等级:七尾狐 帖子:1695 积分:10725 威望:0 精华:0 注册:2009/10/25 16:45:00
  发帖心情 Post By:2013/1/16 0:06:00 [显示全部帖子]

以下是引用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
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1695 积分:10725 威望:0 精华:0 注册:2009/10/25 16:45:00
  发帖心情 Post By:2013/1/16 11:54:00 [显示全部帖子]

以下是引用lin_hailun在2013-1-16 9:34:00的发言:


有木有具体的数据可以测试?楼主?弄上来看看。

目的:
想核销掉 CstmName、科目名称、自定义项 三列内容都一致时:
当:借方金额=贷方金额     》》》》  在已核销列标注“jd”
当:借方金额累计=贷方金额累计   》》》 在已核销列标注“lj”
当:借方累计为零 或 贷方累计为零   》》》 在已核销列标注“lh”

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

 

效果图:


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

科目:预收货款-已确定 的行,借方金额累计= 贷方金额累计, 所以也可以标注"lj"字样. 

 

注意: 已标注过的行将不能参与以后的核销标注的计算了.

[此贴子已经被作者于2013-1-16 11:59:16编辑过]

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


加好友 发短信
等级:七尾狐 帖子:1695 积分:10725 威望:0 精华:0 注册:2009/10/25 16:45:00
  发帖心情 Post By:2013/1/17 0:50:00 [显示全部帖子]

以下是引用lin_hailun在2013-1-16 20:56:00的发言:
 终于是弄好了。用sql语句直接在后台弄,然后再加载到foxtable里,只做了第一种情况,第二种要组合累加行的比较麻烦,楼主先自己想想办法。

 

结果有问题,随意抽查了一个“自定义项”就发现了。 见红框里面的:


图片点击可在新窗口打开查看此主题相关图片如下:test r.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2013-1-17 0:50:41编辑过]

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


加好友 发短信
等级:七尾狐 帖子:1695 积分:10725 威望:0 精华:0 注册:2009/10/25 16:45:00
  发帖心情 Post By:2013/1/17 10:58:00 [显示全部帖子]

不懂sql语句, 看半天没看明白,要是有人能逐条解释一下那就太谢谢了。

 

但我用foxtable自身的代码全部搞定上面14楼所述的条件,例子中35500多条记录,最后未核销的记录剩下1522条了。 供用了不到25秒。不知道是否算慢的? 

                                  在此摆个擂台吧。


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


加好友 发短信
等级:七尾狐 帖子:1695 积分:10725 威望:0 精华:0 注册:2009/10/25 16:45:00
  发帖心情 Post By:2013/1/17 11:13:00 [显示全部帖子]

先顶上去。呵呵              再谢谢小林老师。


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