pivotCache.CommandText更改降级pivotCache.version

时间:2014-03-27 15:39:41

标签: sql excel vba excel-vba pivot-table

我有以下问题:
我有一个宏,根据更好的activecell是数据透视表的一部分或不执行以下操作:
- 如果activecell不是数据透视表的一部分,它会创建一个包含ODBC数据源和Windows剪贴板中包含的SQL查询   - 否则它将PivotCache.CommandText替换为剪贴板中包含的查询。

这一切都运行良好,直到我发现枢轴切片器,一旦用宏创建数据透视表我能够添加切片器,它工作正常,但当我用新的SQL查询替换CommandText属性时,现有的切片器不刷新,并且我尝试添加新的我得到的错误信息是这样的:

"数据透视表是在早于2007年的excel版本或兼容模式"中创建的 (我不能直接发布消息,因为我没有使用英文版的excel)

我发现只要我以编程方式更改PivotCache.CommandText(或.sql)属性,PivotCache.Version就会从" xlPivotTableVersion12" to" xlPivotTableVersion2000",这显然早于Excel 2007.属性.Version是readOnly所以我无法改变它。

问题是这个问题也出现在我公司广泛使用的报告中,其中vba用于构造sql查询(基于用户点击useform),然后将其放入数据透视表 - 我不能使用切片器点。

有人有任何想法吗?

1 个答案:

答案 0 :(得分:0)

最终我找到了一些解决方法,并了解到这只发生在Microsoft Office上运行波兰语版本的计算机上(在Excel 2007和2010多台计算机上都检查过),并且在英文版Office 2010上没有发生(只有一台机器用于测试) )。
worakround正在从ODBC变为OLEDB数据源,一旦改为OLEDB,问题再也不会发生 上面提到的一些问题(以及为什么本地化很重要?)仍然没有答案,但我认为这已经解决了。