Office中国论坛/Access中国论坛

标题: 关于“迭代”查询的刷新问题 [打印本页]

作者: anthonywang9    时间: 2012-5-16 21:52
标题: 关于“迭代”查询的刷新问题
      假定源表为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刷新不能立即体现变化。
    请各位大侠赐教,可能问题问的有些小儿科。
作者: roych    时间: 2012-5-16 22:45
仅刷新窗体的数据源即可,其它的都不用管。
作者: anthonywang9    时间: 2012-5-16 22:57
roych版主,感谢光临。
小弟有如下疑问:
1、假设Tabel有增删情况时,我刷新窗体数据源,是不是连带的将第一层的query1/2/3/4执行一遍了?
2、目前每次打开该数据透视图窗体时,会出现大约10s的等待时间,故此我想设定窗体打开时禁止刷新,以减少运行时间。仅对手动刷新时,完成数据源的刷新,不知可否。应如何设置?
作者: roych    时间: 2012-5-17 00:41
anthonywang9 发表于 2012-5-16 22:57
roych版主,感谢光临。
小弟有如下疑问:
1、假设Tabel有增删情况时,我刷新窗体数据源,是不是连带的将第 ...

1、是。
2、这跟禁止刷新并没多少关系。数据透视表形式的窗体读取数据向来较慢(读取完之后还得应用到透视图表上),如果记录不需要增减删改之类,可以记录集类型设置为快照会快些许。最好的办法还是先预加载数据。
作者: anthonywang9    时间: 2012-5-17 20:13
roych 发表于 2012-5-17 00:41
1、是。
2、这跟禁止刷新并没多少关系。数据透视表形式的窗体读取数据向来较慢(读取完之后还得应用到透 ...

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

因为复杂,所以延时很长啊
作者: imono    时间: 2012-8-19 10:32
学习了,我现在也碰到这个问题,公司数据库中导出来的数据动不动几万甚至十几万行,而且表间关系很复杂,搞的我打开个窗口都慢的要死




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3