我有一个Office数据连接(ODC)指向存储在我们公司服务器上的OLAP多维数据集。连接字符串非常简单:
Provider=MSOLAP.6;Integrated Security=SSPI;Persist Security Info=True;Initial Catalog=Reporting Model;Data Source=SQL03;MDX Compatibility=1;Safety Options=2;MDX Missing Member Mode=Error
使用此多维数据集,我创建了一个包含多个数据透视表的Excel文件,每个工作表一个。一切正常,但是当我刷新数据透视表以获取最新数据时,每个数据透视表都会单独刷新,即每个数据透视表使用与多维数据集的连接显示以下内容:
是否有一个只需要一次刷新的解决方案,所有的pivottable共享它?我已经尝试使所有数据透视表使用相同的缓存,但尝试使用以下方式设置数据透视缓存:
Sheets("Pivot").PivotTables(1).CacheIndex = 1
以运行时错误'1004'结束:应用程序定义或对象定义错误
有没有办法让所有数据透视表以某种方式共享数据源?
也许是在打开文件时创建了OLAP多维数据集的本地副本,或者以不同的方式缓存数据透视表?
我一直在玩http://www.contextures.com/xlPivot11.html的VBA,但似乎所有人都认为你的数据来自本地来源。
答案 0 :(得分:0)
基于OLAP的支点的“缓存”概念与非基于OLAP的支点完全不同。根据{{3}}
基于OLAP数据源的Pivots,仅返回汇总数据 到Excel,根据需要。使用非OLAP外部数据库 返回各个源记录,然后Excel执行 总结。
因此,OLAP数据库可以为Excel提供 分析更多的外部数据。
但是因此,如果不对Excel进行一些重要的聚合,可能无法或不希望在Excel中“缓存”基础数据。但也许这就是解决方案:用你要报告的每个字段组成一个怪物数据透视表,然后构建一个报告界面,简单地使用GETPIVOTDATA函数引用该怪物数据透视表。