使用VBA添加或更改Power Pivot数据连接

4
即使我搜索和尝试了很长时间,我仍不确定它是否可能。
我有一个使用SQL源的PP模型。假设命令是:
select * from FactInternetSales where CustomerKey  = 11001

我有一个筛选器,名为“CustomerKey”,根据筛选器的选择,我想更新命令。例如:
select * from FactInternetSales where CustomerKey  = 11002

我正在尝试的代码是:

Dim mdl As ModelTable
    Dim wcon As WorkbookConnection
    Dim cmd As String

    Set mdl = ActiveWorkbook.Model.ModelTables("Customers")
    Debug.Print mdl.SourceWorkbookConnection.OLEDBConnection.CommandText
    mdl.SourceWorkbookConnection.OLEDBConnection.CommandText = "select * from      FactInternetSales where CustomerKey  = 11002" 

尝试分配命令会导致“运行时错误1004”。
我刚刚看到了链接,似乎是可能的。但我不理解“临时表”的部分。请分享您的意见(以及您用来解决此问题的VBA代码)。
谢谢, Prakash

1004 意味着它是对象的只读属性(或者至少不允许编辑),因此无法通过 VBA 分配。 我也在追踪你链接中的那个人的脚本! - baldmosher
似乎连接不是只读的(如果您通过Excel向导创建它而不是直接在PP中创建),但CommandText是只读的。[链接](https://wordpress.training-nyc.com/vba/macro-to-change-powerpivot-data-connection/) - baldmosher
但是一旦您在PP中编辑连接,它会使其再次完全变为只读。 - baldmosher
1个回答

1

很久以前,我在这里看到了自己的问题。我已经找到了解决方案,因此回答了自己的问题。

解决方案是需要从Excel数据菜单创建连接并从那里加载/导入数据(“仅创建连接”和“将此数据添加到数据模型中”)。如果使用PP窗口创建,则数据模型将标记为只读。如果从Excel数据菜单导入后重命名/添加表格/字段,则数据模型将标记为只读,但在关系和度量创建/添加方面没有问题。

谢谢


如果在Power Pivot中创建了连接并用于数据透视模型,那么由于该连接是只读的,我是否需要重新创建数据透视表? - user 88 91
你的目的不清楚。只要你不需要更新查询,你可以从PP或Excel数据菜单创建连接,这样你就不必重新创建透视表以进行刷新。 - Prakash Gautam
我需要更改数据库服务器,旧的已经被删除,包括用户。如果我在Excel中创建到新数据库服务器的连接,我是否可以简单地更改数据透视表将使用的连接? - user 88 91

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接