In diesem Beispiel wird ein neuer PivotTable-Cache erstellt, der auf einem OLAP-Anbieter basiert, und anschließend in Zelle "A3" im aktiven Tabellenblatt ein neuer PivotTable-Bericht erstellt, der auf dem Cache basiert.
With ActiveWorkbook.PivotCaches.Add(SourceType:=xlExternal) .Connection = _ "OLEDB;Provider=MSOLAP;Location=srvdata;Initial Catalog=National" .MaintainConnection = True .CreatePivotTable TableDestination:=Range("A3"), _ TableName:= "PivotTable1" End With With ActiveSheet.PivotTables("PivotTable1") .SmallGrid = False .PivotCache.RefreshPeriod = 0 With .CubeFields("[state]") .Orientation = xlColumnField .Position = 0 End With With .CubeFields("[Measures].[Count Of au_id]") .Orientation = xlDataField .Position = 0 End With End With
In diesem Beispiel wird mit Hilfe einer ADO-Verbindung zu Microsoft Jet ein neuer PivotTable-Cache erstellt und dann in Zelle "A3" im aktiven Tabellenblatt ein neuer PivotTable-Bericht, der auf dem Cache basiert.
Dim cnnConn As ADODB.Connection Dim rstRecordset As ADODB.Recordset Dim cmdCommand As ADODB.Command ' Open the connection. Set cnnConn = New ADODB.Connection With cnnConn .ConnectionString = _ "Provider=Microsoft.Jet.OLEDB.4.0" .Open "C:\perfdate\record.mdb" End With ' Set the command text. Set cmdCommand = New ADODB.Command Set cmdCommand.ActiveConnection = cnnConn With cmdCommand .CommandText = "Select Speed, Pressure, Time From DynoRun" .CommandType = adCmdText .Execute End With ' Open the recordset. Set rstRecordset = New ADODB.Recordset Set rstRecordset.ActiveConnection = cnnConn rstRecordset.Open cmdCommand ' Create a PivotTable cache and report. Set objPivotCache = ActiveWorkbook.PivotCaches.Add( _ SourceType:=xlExternal) Set objPivotCache.Recordset = rstRecordset With objPivotCache .CreatePivotTable TableDestination:=Range("A3"), _ TableName:="Performance" End With With ActiveSheet.PivotTables("Performance") .SmallGrid = False With .PivotFields("Pressure") .Orientation = xlRowField .Position = 1 End With With .PivotFields("Speed") .Orientation = xlColumnField .Position = 1 End With With .PivotFields("Time") .Orientation = xlDataField .Position = 1 End With End With ' Close the connections and clean up. cnnConn.Close Set cmdCommand = Nothing Set rstRecordSet = Nothing Set cnnConn = Nothing