如果数据透视表的缓存与 OLE DB 数据源连接,就返回一个 ADO 连接对象。ADOConnection 属性表明 Microsoft Excel 与数据提供程序相连,数据提供程序允许用户在同一个会话的上下文中写入代码,该会话与 ADO(相关源)或 ADOMD(OLAP 源)一起使用。只读。
expression.ADOConnection
expression 必需。该表达式返回一个 PivotCache 对象。
ADOConnection 属性只用于数据源是 OLE DB 数据源时的会话。如果没有 ADOMD 会话,查询将导致运行错误。
ADOConnection 属性可用于任意包含 ADO 的基于 OLEDB 的缓存。采用 ADOMD 的 ADO 连接对象可用于查找有关 OLAP 多维数据集的信息,缓存基于该 OLAP 多维数据集。
本示例为数据透视表缓存的 ADOConnection 属性设置了一个 ADODB 连接对象。本示例假定数据透视表位于活动工作表上。
Sub UseADOConnection()
Dim ptOne As PivotTable
Dim cmdOne As New ADODB.Command
Dim cfOne As CubeField
Set ptOne = Sheet1.PivotTables(1)
ptOne.PivotCache.MaintainConnection = True
Set cmdOne.ActiveConnection = ptOne.PivotCache.ADOConnection
ptOne.PivotCache.MakeConnection
' Create a set.
cmdOne.CommandText = "Create Set [Warehouse].[My Set] as '{[Product].[All Products].Children}'"
cmdOne.CommandType = adCmdUnknown
cmdOne.Execute
' Add a set to the CubeField.
Set cfOne = ptOne.CubeFields.AddSet("My Set", "My Set")
End Sub
本示例在假定数据透视表位于活动工作表的前提下,添加一个计算成员。
Sub AddMember()
Dim cmd As New ADODB.Command
If Not ActiveSheet.PivotTables(1).PivotCache.IsConnected Then
ActiveSheet.PivotTables(1).PivotCache.MakeConnection
End If
Set cmd.ActiveConnection = ActiveSheet.PivotTables(1).PivotCache.ADOConnection
' Add a calculated member.
cmd.CommandText = "CREATE MEMBER [Warehouse].[Product].[All Products].[Drink and Non-Consumable] AS '[Product].[All Products].[Drink] + [Product].[All Products].[Non-Consumable]'"
cmd.CommandType = adCmdUnknown
cmd.Execute
ActiveSheet.PivotTables(1).PivotCache.Refresh
End Sub