如何获取为ListObject提供的OLEDBConnection的名称(表)

时间:2016-03-24 06:19:13

标签: vba dax tabular

用户点击我从ThisWorkbookDataModel创建一个使用DAX查询的表格。代码由宏录制器录制,如下所示:

    Range("A9").Select

With ActiveSheet.ListObjects.Add(SourceType:=4, Source:=ActiveWorkbook. _
    Connections("Query - Unit___Student_unit_enrolment_d"), Destination:=Range( _
    "$A$9")).TableObject
    .ListObject.DisplayName = "DAXdetails"
End With


Range("DAXdetails[[#All]]").Select

With Selection.ListObject.TableObject.WorkbookConnection.OLEDBConnection
    .CommandText = Array( _
    "EVALUATE" & Chr(13) & "" & Chr(10) & "CALCULATETABLE(" & Chr(13) & "" & Chr(10) & "    Unit___Student_unit_enrolment_d" & Chr(13) & "" & Chr(10) & "   ) ")
    .CommandType = xlCmdDAX
End With
ActiveWorkbook.Connections("ModelConnection_ExternalData_1").Refresh

这个动态创建的问题是,如果我在表格DAX查询中已经从ThisWorkbookDataModel提供了任何其他表而不是此行

    ActiveWorkbook.Connections("ModelConnection_ExternalData_1").Refresh

刷新其他表。

任何人都可以建议,我如何获得我正在创建的表DAX详细信息的连接名称 - 正确刷新它?

1 个答案:

答案 0 :(得分:0)

通过一些手动试验和实验,我找到了通过索引解决该连接的方法:

ActiveWorkbook.Connections(3).Refresh

然而,如果有人知道如何获取为DAX表格查询表提供信息的Connection名称,那么它将获得很多帮助。

谢谢!