Create a Pivottable based on data from Access

 2002-07-17    Import & Export    0    311

The example macro below shows how you can create a Pivottable in Excel based on data from an Access table or query. To run the example you will need an Access database with a table named "Customers" that contains the fields "CustomerID", "CustomerName", "City", "Region", "Country".

Note! Read and edit the source code before you use it!

Sub CreatePivotTableFromAccessData()
Const DataBaseName As String = "C:\FolderName\CustomerDB.mdb"
Const dbConnectionString As String = "ODBC;DBQ=" & _
    DataBaseName & ";Driver={Microsoft Access  Driver (*.mdb)};"
Const TableName As String = "Customers"
Dim varSource As Variant, pt As PivotTable
    Application.ScreenUpdating = False
    Workbooks.Add
    varSource = Array(dbConnectionString, "SELECT * FROM " & TableName)
    Set pt = ActiveSheet.PivotTableWizard(xlExternal, varSource, Range("A6"))
    With pt ' add information to the empty pivottable
       ' specify row field(s)
       With .PivotFields("City")
            .Orientation = xlRowField
            .Position = 1
        End With
       ' specify column field(s)
       With .PivotFields("Region")
          .Orientation = xlColumnField
          .Position = 1
       End With
       ' specify page field(s)
       .PivotFields("Country").Orientation = xlPageField
       ' specify data field(s)
       .PivotFields("CustomerID").Orientation = xlDataField
       ' set data region number format
       .DataBodyRange.NumberFormat = "#,##0"
    End With
    Set pt = Nothing
End Sub