设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 2489|回复: 10
打印 上一主题 下一主题

[查询] 关于“迭代”查询的刷新问题

[复制链接]
跳转到指定楼层
#
发表于 2012-5-16 21:52:57 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
      假定源表为TABLE,基于源表第一次查询得出Query1,Query2,Query3,Query4,基于Query1/2/3/4第二次查询(UNION 联合查询再组合)得出Query_Query1,Query_Query2。然后基于Query_Query1,Query_Query2建立数据透视图窗体Pivotchart1,Pivotchart2.
       1、一般情况下直接打开Pivotchart1或Pivotchart2时后台是否刷新其数据源Query_Query1,Query_Query2?
    2、如设置手动刷新按钮,那么VBA中写Me.Requery时,是仅刷新到Query_Query1,Query_Query2到这一层还是从Tabel→Query1/2/3/4→Query_Query1/2逐层迭代式的执行重新查询?
    因为我这几个查询执行时间平均都超3s,我想设置一个msgbox对话窗口,即可供用户选择是否刷新数据透视表窗体数据源,故有此问。我担心TABLE表中有增删时,仅对数据透视图窗体requery刷新不能立即体现变化。
    请各位大侠赐教,可能问题问的有些小儿科。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
10#
发表于 2012-8-19 10:32:09 | 只看该作者
学习了,我现在也碰到这个问题,公司数据库中导出来的数据动不动几万甚至十几万行,而且表间关系很复杂,搞的我打开个窗口都慢的要死
9#
 楼主| 发表于 2012-5-21 20:53:38 | 只看该作者
williamwangc 发表于 2012-5-20 23:42
这个查询似乎很复杂的说

因为复杂,所以延时很长啊
8#
发表于 2012-5-20 23:42:14 | 只看该作者
这个查询似乎很复杂的说
7#
发表于 2012-5-19 09:03:10 | 只看该作者
学习
6#
 楼主| 发表于 2012-5-17 20:55:47 | 只看该作者
1、我的查询因为涉及数据多,且引用自定义函数,使用联合查询,自连接,分组等,延时情况很严重。IN语句也没用过的。
2、不知版主是否可以提供预加载的部分代码,叫小弟学习啊!
3、我现在是这么计划的。将透视图的默认记录集类型设为快照,然后点击打开透视图窗体时弹出MSGBOX对话框,如选择“刷新源数据”,即利用VBA将窗体记录集的类型设置为动态集,然后再打开窗体,如不选择刷新,即以快照形式打开窗体。不知此方法可否?
5#
发表于 2012-5-17 20:34:26 | 只看该作者
1、个中原理我还真美研究过噢,只知道快照所用的内存最小。
2、预加载一般是在加载事件中先打开记录集,加载完毕后再显示数据。
不过加载时间过长时,往往跟查询,特别是分组统计、条件或者内联接表较多等原因有关。当然数据透视表窗体也是一其中一个原因。妥善地优化 查询才是正道啊。例如 In语句尽可能不要用,特别是子查询能不用时尽量不用,而是改为联接。
4#
 楼主| 发表于 2012-5-17 20:13:11 | 只看该作者
roych 发表于 2012-5-17 00:41
1、是。
2、这跟禁止刷新并没多少关系。数据透视表形式的窗体读取数据向来较慢(读取完之后还得应用到透 ...

谢谢版主。
1、我设置记录集类型为快照后,打开窗体延时差不多2s,的确下降了很多。不过不知道版主可否解释下记录集类型中动态集/快照的区别?
2、版主提及的预加载数据的形式是如何的?
3#
发表于 2012-5-17 00:41:10 | 只看该作者
anthonywang9 发表于 2012-5-16 22:57
roych版主,感谢光临。
小弟有如下疑问:
1、假设Tabel有增删情况时,我刷新窗体数据源,是不是连带的将第 ...

1、是。
2、这跟禁止刷新并没多少关系。数据透视表形式的窗体读取数据向来较慢(读取完之后还得应用到透视图表上),如果记录不需要增减删改之类,可以记录集类型设置为快照会快些许。最好的办法还是先预加载数据。
2#
 楼主| 发表于 2012-5-16 22:57:01 | 只看该作者
roych版主,感谢光临。
小弟有如下疑问:
1、假设Tabel有增删情况时,我刷新窗体数据源,是不是连带的将第一层的query1/2/3/4执行一遍了?
2、目前每次打开该数据透视图窗体时,会出现大约10s的等待时间,故此我想设定窗体打开时禁止刷新,以减少运行时间。仅对手动刷新时,完成数据源的刷新,不知可否。应如何设置?
1#
发表于 2012-5-16 22:45:55 | 只看该作者
仅刷新窗体的数据源即可,其它的都不用管。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-29 21:26 , Processed in 0.127898 second(s), 35 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表