Foxtable(狐表)用户栏目专家坐堂 → 运行速度太慢了,求代码简化和提速方案


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

主题:运行速度太慢了,求代码简化和提速方案

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


加好友 发短信
等级:童狐 帖子:213 积分:2228 威望:0 精华:0 注册:2012/2/3 14:14:00
运行速度太慢了,求代码简化和提速方案  发帖心情 Post By:2014/8/6 1:45:00 [只看该作者]

各位前辈老师,小弟制作了一个操作系统,但是操作起来的速度太慢了,例如,读取10天的数据速度尚可,超过了,速度就慢得要死.
本人是菜鸟级,也知道系统是有些烂,还望各位前辈老师耐心指导.
运行环境:局域网
运行问题:调阅资料和编辑资料运行速度实在太慢,求代码简化.
密码:888

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/8/6 8:33:00 [只看该作者]

东西呢?

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


加好友 发短信
等级:童狐 帖子:213 积分:2228 威望:0 精华:0 注册:2012/2/3 14:14:00
  发帖心情 Post By:2014/8/6 22:07:00 [只看该作者]


上传时文件太大没有成功,现在整理后重传了,谢谢
[此贴子已经被作者于2014-8-7 17:52:34编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/8/6 22:25:00 [只看该作者]

 项目很大,哪个表,哪个窗口,哪个按钮的操作慢?

 

 别人不可能帮你看完整个项目啊。


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


加好友 发短信
等级:童狐 帖子:213 积分:2228 威望:0 精华:0 注册:2012/2/3 14:14:00
  发帖心情 Post By:2014/8/6 23:17:00 [只看该作者]

谢谢l老师的意见,情况是这样的:
主表:报关登记表(关联表:报关结算表)
菜单:业务管理,将需要的日期填入"开始"按钮和"结束"按钮,选择"加载"
选择日期间隔长,例如1个月的数据,系统就会变得很慢.




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


加好友 发短信
等级:二尾狐 帖子:509 积分:3547 威望:0 精华:3 注册:2012/11/13 15:49:00
  发帖心情 Post By:2014/8/6 23:57:00 [只看该作者]

加载的数据越多,加载的速度就越慢,这个是肯定的

 


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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/8/7 7:49:00 [只看该作者]

第一,列太多,能不能分拆成几个小表。

第二,DrawCell事件中,好多单元格都要重绘,能不能减少。

第三,一次加载很多行,有没有必要。

第四,多线程加载。加载过程中,不影响干其他事,就不觉得慢了。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/8/7 9:32:00 [只看该作者]

 看了一下,如果是加载慢的话,有几种原因。

 

1、其它事件影响了,你要改一下代码

 

Dim StartDate As Date
Dim EndDate As Date
With RibbonTabs("业务管理")("报关登记查询")("时间筛选")
    StartDate = .Items("StartDate").Value
End With
With RibbonTabs("业务管理")("报关登记查询")
    EndDate = .Items("EndDate").Value
End With
SystemReady = False
DataTables("报关登记表").StopRedraw
DataTables("报关结算表").StopRedraw

DataTables("报关登记表").LoadFilter = "[日期] >= #" & StartDate & "# And [日期] <= #" & EndDate & "#"
DataTables("报关登记表").Load()

DataTables("报关结算表").LoadFilter = "[日期] >= #" & StartDate & "# And [日期] <= #" & EndDate & "#"
DataTables("报关结算表").Load()

DataTables("报关结算表").ResumeRedraw
DataTables("报关登记表").ResumeRedraw
SystemReady = True

 

2、表达式列过多,如果加载量过多的话,重新计算也是很耗时的。建议尽量不要用表达式列了,你看看是否可以用数据列代替表达式列的功能。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/8/7 9:35:00 [只看该作者]

 再有一个,你的数据较多,你要在access里面给日期列添加一个索引,这样利于查询和比较,不然会很慢的。

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


加好友 发短信
等级:童狐 帖子:213 积分:2228 威望:0 精华:0 注册:2012/2/3 14:14:00
  发帖心情 Post By:2014/8/7 14:52:00 [只看该作者]

谢谢各位老师给予的指导:
我的不明白地方如下:

第一,列太多,能不能分拆成几个小表。  

          拆分几个小表,还是存在父表和子表加载问题,加载的数据量应该是一样的,耗时会少吗?  

第二,DrawCell事件中,好多单元格都要重绘,能不能减少。

     嗯,功能教学中有说过这个问题,但是这个是提示需要,我希望系统能自动排除问题数据并提示.所以少不了

第三,一次加载很多行,有没有必要。

     最起码我觉得2个月的数据是需要的,因为整理数据是以月为单位,并且经常要对比上一个月的数据,也就是约1400行的数据     

第四,多线程加载。加载过程中,不影响干其他事,就不觉得慢了。

  请教老师,什么叫多线程加载,能告诉我操作方法吗?



2、表达式列过多,如果加载量过多的话,重新计算也是很耗时的。建议尽量不要用表达式列了,你看看是否可以用数据列代替表达式列的功能。

     嗯,明白.


3.  再有一个,你的数据较多,你要在access里面给日期列添加一个索引,这样利于查询和比较,不然会很慢的。

    老师,能给我建立索引的操作方法吗?



[此贴子已经被作者于2014-8-7 14:54:00编辑过]

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