locked
Object Variable or With block variable not set : MS Access RRS feed

  • Question

  • I have a code that I'm running in Access. I take the queries from access and export the data to excel then i begin to create a pivot table. The code will run through four queries then stop on the fifth one. I'm not sure how to fix the error "Object Variable not set or with block variable not set" as i have tried with statements and the code runs through four queries before it debugs. 

    Please assist. 

    Debugs here in Iowa:

    'ITM Price Var
        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
            "PivotTable1").PivotFields("ITM_Price_Var"), "Sum of ITM_Price_Var", xlSum

    Function pivotXLall()

    Application.Echo False
    '''''''''''''''''''''''''''''''''''''''
    'AC
    '''''''''''''''''''''''''''''''''''''''
    myDate = Format(Date, "mm-dd-yyyy")

    Dim acPath As String
    acPath = "Z:\Reports_&_Audits\Variance\Saved Files\AC\"
    acName = myDate & "_AC Variance.xlsx"
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "qry_2_AC", acPath & acName, True

    Set ObjExcelAppl = CreateObject("Excel.Application")

    ObjExcelAppl.DisplayAlerts = False
    Dim Objworkbook As Object
    Set Objworkbook = ObjExcelAppl.Workbooks
    Objworkbook.Open acPath & acName
    ObjExcelAppl.Visible = True
    Dim Objworksheet As Object
    Set Objworksheet = ObjExcelAppl.Worksheets("qry_2_AC")


    Dim endrow As Long
    endrow = 1
    Do While Objworksheet.Cells(endrow, 1).Value <> ""
        endrow = endrow + 1
    Loop
    endrow = endrow - 1
    If endrow <= 1 Then
    ObjExcelAppl.Quit
    MsgBox "Atlantic City Has No Data", vbOK, "AC Not Exported"

    Else



    ObjExcelAppl.Sheets.Add

            
        ObjExcelAppl.Workbooks(acName).PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "qry_2_AC!R1C1:R" & endrow & "C21", Version:=xlPivotTableVersion14).CreatePivotTable _
        TableDestination:="Sheet1!R3C1", TableName:="PivotTable1", DefaultVersion _
        :=xlPivotTableVersion14


        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").PivotFields("Item_Number").Orientation = xlRowField
             ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").PivotFields("Item_Number").Position = 1
      
        
        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").PivotFields("Company").Orientation = xlRowField
             ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").PivotFields("Company").Position = 2
       
        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").PivotFields("Item_Description").Orientation = xlRowField
             ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").PivotFields("Item_Description").Position = 3

       
        'ITM Price Var
        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
            "PivotTable1").PivotFields("ITM_Price_Var"), "Sum of ITM_Price_Var", xlSum

        'Max of ITM_Price_Var change from sum to max
        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").PivotFields("Sum of ITM_Price_Var").Caption = "Max of ITM_Price_Var"
             ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").PivotFields("Max of ITM_Price_Var").Function = xlMax
      


        'Sum of Line_Var_Total
        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
            "PivotTable1").PivotFields("Line_Var_Total"), "Sum of Line_Var_Total", xlSum


        
        'Sum of VI_Gross_Item_Price
        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
            "PivotTable1").PivotFields("VI_Gross_Item_Price"), "Sum of VI_Gross_Item_Price" _
            , xlSum


        'Sum of VI_Item_Qty
        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
            "PivotTable1").PivotFields("VI_Item_Qty"), "Sum of VI_Item_Qty", xlSum
        
        'Sum of RCV_Gross_Item_Price
        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
            "PivotTable1").PivotFields("RCV_Gross_Item_Price"), _
            "Sum of RCV_Gross_Item_Price", xlSum

        'Sum of RCV_Item_Qty
        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
            "PivotTable1").PivotFields("RCV_Item_Qty"), "Sum of RCV_Item_Qty", xlSum
        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").PivotFields("Item_Number").ShowDetail = False
        
        'change to ouline
        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").RowAxisLayout xlOutlineRow
        
        ' autfit columns
            ObjExcelAppl.ActiveSheet.Columns("A:A").EntireColumn.AutoFit
        ObjExcelAppl.ActiveSheet.Columns("B:B").EntireColumn.AutoFit
        ObjExcelAppl.ActiveSheet.Columns("C:C").EntireColumn.AutoFit
    'End With

    ObjExcelAppl.Save

    ObjExcelAppl.Quit

    MsgBox "AC Exported"
    End If

    ''''\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
    '
    ''''\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
    'Balitmore
    Application.Echo False
    Dim baPath As String
    baPath = "Z:\Reports_&_Audits\Variance\Saved Files\Baltimore\"
    baName = myDate & "_Baltimore Variance.xlsx"
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "qry_2_Ba", baPath & baName, True


    ObjExcelAppl.DisplayAlerts = False
    Set Objworkbook = ObjExcelAppl.Workbooks
    Objworkbook.Open baPath & baName
    ObjExcelAppl.Visible = True
    Set Objworksheet = ObjExcelAppl.Worksheets("qry_2_Ba")

    Dim baendrow As Long
    baendrow = 1
    Do While Objworksheet.Cells(baendrow, 1).Value <> ""
        baendrow = baendrow + 1
    Loop
    baendrow = endrow - 1
    If baendrow <= 1 Then
    ObjExcelAppl.Quit
    MsgBox "Balitmore Has No Data", vbOK, "Balitmore Not Exported"


    Else



    ObjExcelAppl.Sheets.Add
    'Dim Pt As PivotTable

            
        ObjExcelAppl.Workbooks(baName).PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "qry_2_Ba!R1C1:R" & baendrow & "C21", Version:=xlPivotTableVersion14).CreatePivotTable _
        TableDestination:="Sheet1!R3C1", TableName:="PivotTable1", DefaultVersion _
        :=xlPivotTableVersion14


        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").PivotFields("Item_Number").Orientation = xlRowField
             ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").PivotFields("Item_Number").Position = 1
      
        
        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").PivotFields("Company").Orientation = xlRowField
             ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").PivotFields("Company").Position = 2
       
        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").PivotFields("Item_Description").Orientation = xlRowField
             ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").PivotFields("Item_Description").Position = 3

       
        'ITM Price Var
    '
        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
            "PivotTable1").PivotFields("ITM_Price_Var"), "Sum of ITM_Price_Var", xlSum

        'Max of ITM_Price_Var change from sum to max
        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").PivotFields("Sum of ITM_Price_Var").Caption = "Max of ITM_Price_Var"
             ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").PivotFields("Max of ITM_Price_Var").Function = xlMax
      
    '    End With

        'Sum of Line_Var_Total
        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
            "PivotTable1").PivotFields("Line_Var_Total"), "Sum of Line_Var_Total", xlSum
     
        
        'Sum of VI_Gross_Item_Price
        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
            "PivotTable1").PivotFields("VI_Gross_Item_Price"), "Sum of VI_Gross_Item_Price" _
            , xlSum


        'Sum of VI_Item_Qty
        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
            "PivotTable1").PivotFields("VI_Item_Qty"), "Sum of VI_Item_Qty", xlSum
        
        'Sum of RCV_Gross_Item_Price
        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
            "PivotTable1").PivotFields("RCV_Gross_Item_Price"), _
            "Sum of RCV_Gross_Item_Price", xlSum

        'Sum of RCV_Item_Qty
        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
            "PivotTable1").PivotFields("RCV_Item_Qty"), "Sum of RCV_Item_Qty", xlSum
        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").PivotFields("Item_Number").ShowDetail = False
        
        'change to ouline
        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").RowAxisLayout xlOutlineRow
        
        ' autfit columns
            ObjExcelAppl.ActiveSheet.Columns("A:A").EntireColumn.AutoFit
        ObjExcelAppl.ActiveSheet.Columns("B:B").EntireColumn.AutoFit
        ObjExcelAppl.ActiveSheet.Columns("C:C").EntireColumn.AutoFit
    'End With

    ObjExcelAppl.Save

    ObjExcelAppl.Quit

    MsgBox "Baltimore Exported"
    End If


    '''''''''''''''''''''''''''''''''''''''
    '''''''''''''''''''''''''''''''''''''''
    '''''''''''''''''''''''''''''''''''''''
    '''''''''''''''''''''''''''''''''''''''
    '''''''''''''''''''''''''''''''''''''''
    'Cincinnati
    '''''''''''''''''''''''''''''''''''''''
    '''''''''''''''''''''''''''''''''''''''
    '''''''''''''''''''''''''''''''''''''''
    '''''''''''''''''''''''''''''''''''''''
    Application.Echo False

    Dim cinPath As String
    cinPath = "Z:\Reports_&_Audits\Variance\Saved Files\Cincinnati\"

    cinName = myDate & "_Cincinnati Variance.xlsx"
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "qry_2_Cin", cinPath & cinName, True

    Set ObjExcelAppl = CreateObject("Excel.Application")

    ObjExcelAppl.DisplayAlerts = False
    Set Objworkbook = ObjExcelAppl.Workbooks
    Objworkbook.Open cinPath & cinName
    ObjExcelAppl.Visible = True
    Set Objworksheet = ObjExcelAppl.Worksheets("qry_2_Cin")


    Dim cinendrow As Long
    cinendrow = 1
    Do While Objworksheet.Cells(cinendrow, 1).Value <> ""
        cinendrow = cinendrow + 1
    Loop
    cinendrow = cinendrow - 1
    If cinendrow <= 1 Then
    ObjExcelAppl.Quit
    MsgBox "Cincinnati Has No Data", vbOK, "Cincinnati Not Exported"

    Else



    ObjExcelAppl.Sheets.Add


        ObjExcelAppl.Workbooks(cinName).PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "qry_2_Cin!R1C1:R" & endrow & "C21", Version:=xlPivotTableVersion14).CreatePivotTable _
        TableDestination:="Sheet1!R3C1", TableName:="PivotTable1", DefaultVersion _
        :=xlPivotTableVersion14


        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").PivotFields("Item_Number").Orientation = xlRowField
             ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").PivotFields("Item_Number").Position = 1
      
        
        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").PivotFields("Company").Orientation = xlRowField
             ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").PivotFields("Company").Position = 2
       
        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").PivotFields("Item_Description").Orientation = xlRowField
             ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").PivotFields("Item_Description").Position = 3

       
        'ITM Price Var
        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
            "PivotTable1").PivotFields("ITM_Price_Var"), "Sum of ITM_Price_Var", xlSum

        'Max of ITM_Price_Var change from sum to max
        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").PivotFields("Sum of ITM_Price_Var").Caption = "Max of ITM_Price_Var"
             ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").PivotFields("Max of ITM_Price_Var").Function = xlMax
      


        'Sum of Line_Var_Total
        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
            "PivotTable1").PivotFields("Line_Var_Total"), "Sum of Line_Var_Total", xlSum

        
        'Sum of VI_Gross_Item_Price
        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
            "PivotTable1").PivotFields("VI_Gross_Item_Price"), "Sum of VI_Gross_Item_Price" _
            , xlSum


        'Sum of VI_Item_Qty
        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
            "PivotTable1").PivotFields("VI_Item_Qty"), "Sum of VI_Item_Qty", xlSum
        
        'Sum of RCV_Gross_Item_Price
        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
            "PivotTable1").PivotFields("RCV_Gross_Item_Price"), _
            "Sum of RCV_Gross_Item_Price", xlSum

        'Sum of RCV_Item_Qty
        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
            "PivotTable1").PivotFields("RCV_Item_Qty"), "Sum of RCV_Item_Qty", xlSum
        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").PivotFields("Item_Number").ShowDetail = False
        
        'change to ouline
        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").RowAxisLayout xlOutlineRow
        
        ' autfit columns
            ObjExcelAppl.ActiveSheet.Columns("A:A").EntireColumn.AutoFit
        ObjExcelAppl.ActiveSheet.Columns("B:B").EntireColumn.AutoFit
        ObjExcelAppl.ActiveSheet.Columns("C:C").EntireColumn.AutoFit


    ObjExcelAppl.Save

    ObjExcelAppl.Quit

    MsgBox "Cincinnati Exported"
    End If
    '''''''''''''''''''''''''''''''''''''''
    '''''''''''''''''''''''''''''''''''''''
    '''''''''''''''''''''''''''''''''''''''
    '''''''''''''''''''''''''''''''''''''''
    '''''''''''''''''''''''''''''''''''''''
    'Clevand Thistle Down
    '''''''''''''''''''''''''''''''''''''''
    '''''''''''''''''''''''''''''''''''''''
    '''''''''''''''''''''''''''''''''''''''
    '''''''''''''''''''''''''''''''''''''''
    '''''''''''''''''''''''''''''''''''''''
    Application.Echo False

    Dim ctPath As String
    ctPath = "Z:\Reports_&_Audits\Variance\Saved Files\Cleve-ThistleDown\"

    ctName = myDate & "_Cleve-ThistleDown Variance.xlsx"
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "qry_2_CleThis", ctPath & ctName, True

    Set ObjExcelAppl = CreateObject("Excel.Application")
    ObjExcelAppl.DisplayAlerts = False
    Set Objworkbook = ObjExcelAppl.Workbooks
    Objworkbook.Open ctPath & ctName
    ObjExcelAppl.Visible = True
    Set Objworksheet = ObjExcelAppl.Worksheets("qry_2_CleThis")


    Dim ctendrow As Long
    ctendrow = 1
    Do While Objworksheet.Cells(ctendrow, 1).Value <> ""
        ctendrow = ctendrow + 1
    Loop
    ctendrow = citendrow - 1
    If citendrow <= 1 Then
    ObjExcelAppl.Quit
    MsgBox "Cle-This Has No Data", vbOK, "Cle-This Not Exported"


    Else


    ObjExcelAppl.Sheets.Add

            
        ObjExcelAppl.Workbooks(ctName).PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "qry_2_CleThis!R1C1:R" & ctendrow & "C21", Version:=xlPivotTableVersion14).CreatePivotTable _
        TableDestination:="Sheet1!R3C1", TableName:="PivotTable1", DefaultVersion _
        :=xlPivotTableVersion14


        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").PivotFields("Item_Number").Orientation = xlRowField
             ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").PivotFields("Item_Number").Position = 1
      
        
        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").PivotFields("Company").Orientation = xlRowField
             ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").PivotFields("Company").Position = 2
       
        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").PivotFields("Item_Description").Orientation = xlRowField
             ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").PivotFields("Item_Description").Position = 3

       
        'ITM Price Var
        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
            "PivotTable1").PivotFields("ITM_Price_Var"), "Sum of ITM_Price_Var", xlSum

        'Max of ITM_Price_Var change from sum to max
        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").PivotFields("Sum of ITM_Price_Var").Caption = "Max of ITM_Price_Var"
             ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").PivotFields("Max of ITM_Price_Var").Function = xlMax
      


        'Sum of Line_Var_Total
        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
            "PivotTable1").PivotFields("Line_Var_Total"), "Sum of Line_Var_Total", xlSum
        
        'Sum of VI_Gross_Item_Price
        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
            "PivotTable1").PivotFields("VI_Gross_Item_Price"), "Sum of VI_Gross_Item_Price" _
            , xlSum


        'Sum of VI_Item_Qty
        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
            "PivotTable1").PivotFields("VI_Item_Qty"), "Sum of VI_Item_Qty", xlSum
        
        'Sum of RCV_Gross_Item_Price
        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
            "PivotTable1").PivotFields("RCV_Gross_Item_Price"), _
            "Sum of RCV_Gross_Item_Price", xlSum

        'Sum of RCV_Item_Qty
        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
            "PivotTable1").PivotFields("RCV_Item_Qty"), "Sum of RCV_Item_Qty", xlSum
        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").PivotFields("Item_Number").ShowDetail = False
        
        'change to ouline
        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").RowAxisLayout xlOutlineRow
        
        ' autfit columns
            ObjExcelAppl.ActiveSheet.Columns("A:A").EntireColumn.AutoFit
        ObjExcelAppl.ActiveSheet.Columns("B:B").EntireColumn.AutoFit
        ObjExcelAppl.ActiveSheet.Columns("C:C").EntireColumn.AutoFit
    'End With

    ObjExcelAppl.Save

    ObjExcelAppl.Quit

    MsgBox "CleThis Exported"
    End If

    '''''''''''''''''''''''''''''''''''''''
    '''''''''''''''''''''''''''''''''''''''
    '''''''''''''''''''''''''''''''''''''''
    '''''''''''''''''''''''''''''''''''''''
    '''''''''''''''''''''''''''''''''''''''
    '''''''''''''''''''''''''''''''''''''''
    'Iowa Region
    '''''''''''''''''''''''''''''''''''''''
    '''''''''''''''''''''''''''''''''''''''
    '''''''''''''''''''''''''''''''''''''''
    '''''''''''''''''''''''''''''''''''''''
    '''''''''''''''''''''''''''''''''''''''
    '''''''''''''''''''''''''''''''''''''''
    Application.Echo False

    Dim iaPath As String
    iaPath = "Z:\Reports_&_Audits\Variance\Saved Files\Iowa Region\"

    iaName = myDate & "_Iowa Variance.xlsx"
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "qry_2_Ia", iaPath & iaName, True

    Set ObjExcelAppl = CreateObject("Excel.Application")

    ObjExcelAppl.DisplayAlerts = False
    Set Objworkbook = ObjExcelAppl.Workbooks
    Objworkbook.Open iaPath & iaName
    ObjExcelAppl.Visible = True
    Set Objworksheet = ObjExcelAppl.Worksheets("qry_2_Ia")


    Dim iaendrow As Long
    iaendrow = 1
    Do While Objworksheet.Cells(iaendrow, 1).Value <> ""
        iaendrow = iaendrow + 1
    Loop
    iaendrow = iaendrow - 1
    If iaendrow <= 1 Then
    ObjExcelAppl.Quit
    MsgBox "Iowa Has No Data", vbOK, "Iowa Not Exported"

    Else



    ObjExcelAppl.Sheets.Add

            Debug.Print ("qry_2_Ia")
            
        ObjExcelAppl.Workbooks(iaName).PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "qry_2_Ia!R1C1:R" & iaendrow & "C21", Version:=xlPivotTableVersion14).CreatePivotTable _
        TableDestination:="Sheet1!R3C1", TableName:="PivotTable1", DefaultVersion _
        :=xlPivotTableVersion14

        
         ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").PivotFields("Item_Number").Orientation = xlRowField
             ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").PivotFields("Item_Number").Position = 1
      
        
        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").PivotFields("Company").Orientation = xlRowField
             ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").PivotFields("Company").Position = 2
       
        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").PivotFields("Item_Description").Orientation = xlRowField
             ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").PivotFields("Item_Description").Position = 3

       
        'ITM Price Var
        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
            "PivotTable1").PivotFields("ITM_Price_Var"), "Sum of ITM_Price_Var", xlSum

        'Max of ITM_Price_Var change from sum to max
        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").PivotFields("Sum of ITM_Price_Var").Caption = "Max of ITM_Price_Var"
             ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").PivotFields("Max of ITM_Price_Var").Function = xlMax
      


        'Sum of Line_Var_Total
        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
            "PivotTable1").PivotFields("Line_Var_Total"), "Sum of Line_Var_Total", xlSum

        
        'Sum of VI_Gross_Item_Price
        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
            "PivotTable1").PivotFields("VI_Gross_Item_Price"), "Sum of VI_Gross_Item_Price" _
            , xlSum


        'Sum of VI_Item_Qty
        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
            "PivotTable1").PivotFields("VI_Item_Qty"), "Sum of VI_Item_Qty", xlSum
        
        'Sum of RCV_Gross_Item_Price
        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
            "PivotTable1").PivotFields("RCV_Gross_Item_Price"), _
            "Sum of RCV_Gross_Item_Price", xlSum

        'Sum of RCV_Item_Qty
        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
            "PivotTable1").PivotFields("RCV_Item_Qty"), "Sum of RCV_Item_Qty", xlSum
        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").PivotFields("Item_Number").ShowDetail = False
        
        
       
             
             
        'change to ouline
        ObjExcelAppl.ActiveSheet.PivotTables("PivotTable1").RowAxisLayout xlOutlineRow
        
        ' autfit columns
            ObjExcelAppl.ActiveSheet.Columns("A:A").EntireColumn.AutoFit
        ObjExcelAppl.ActiveSheet.Columns("B:B").EntireColumn.AutoFit
        ObjExcelAppl.ActiveSheet.Columns("C:C").EntireColumn.AutoFit


    ObjExcelAppl.Save

    ObjExcelAppl.Quit

    MsgBox "Iowa Exported"
    End If



    • Edited by Legzen34 Thursday, January 19, 2017 5:58 PM
    Thursday, January 19, 2017 5:55 PM

All replies

  • Wow. Lotsa code.

    Hypothesis:

    The base query, "qry_2_Ia", does not contain a field named exactly "ITM_Price_Var", since that is the first time that field is used from that query. My money is on a leading/trailing space, Space instead of an underscore, or doubled up character.

    You can verify by looking at the headings transferred and shown on worksheet qry_2_Ia

    You could debug further by (temporarily) adding the "ITM_Price_Var"  field as another row & see if it blows up there instead of the summation field.


    -MainSleuth You've Got It, Use It! Engineering, Science, Statistics Solutions http://ToolSleuth.com


    • Edited by MainSleuth Thursday, January 19, 2017 7:21 PM
    Thursday, January 19, 2017 7:18 PM
  • MainSleuth...How right you are. I completely missed that! "ITM_Price_Var" is "NOT" in the field summary. Thanks again!
    Thursday, January 19, 2017 11:25 PM
  • Still debugs....debugs on the next pivot table adddatafield sigh...
    Thursday, January 19, 2017 11:44 PM
  • When i run each one individually, the code works. When i put it all together. It doesn't.

    Thursday, January 19, 2017 11:50 PM
  • Yes - it looks to my eye that you are doing a lot of the same stuff over & over. It's hard to be efficient that way, but you have to start somewhere. Sometimes breaking things up helps you and your machine to keep things in the right box.

    The next step is probably to put each variance in it's own sub & then call them one by one. You will see the pattern from one variance to the next and can generalize from there. You can also convert some of the repetitive lines (like finding the last row) into a function.
    Here's what I mean for both breaking it up and using a function for repetitive stuff. This is clearly incomplete, but it should give you the idea:

    Option Explicit
    
    Function pivotXLall()
      Dim ObjExcelAppl  As Excel.Application
      Application.Echo False
      Set ObjExcelAppl = CreateObject("Excel.Application")
      If Not ObjExcelAppl Is Nothing Then
        ObjExcelAppl.DisplayAlerts = False
        GetTheACData ObjExcelAppl
        ' ... Break your large sub into smaller ones - one for each export.
        GetTheIowaData ObjExcelAppl
      End If
      ObjExcelAppl.Quit
      Set ObjExcelApp = Nothing
    End Function
    
    Public Function FindTheLastRow(wksThisOne As Excel.Worksheet) As Long
    ' A generic function that returns the last row used from the export
      Dim FindTheLastRow As Long
      On Error Resume Next
      FindTheLastRow = wksThisOne.UsedRange.Rows.Count - 5    ' maybe this is a better guess than 1
      If FindTheLastRow < 1 Then FindTheLastRow = 1
      Do While wksThisOne.CellsFindTheLastRow1.Value <> ""
         FindTheLastRow = FindTheLastRow + 1
      Loop
      FindTheLastRow = FindTheLastRow - 1
    End Function
    
    Private Sub GetTheACData(oXlApp As Excel.Application)
        Const acPath As String = "Z:\Reports_&_Audits\Variance\Saved Files\AC\"
        Const strExportQueryName As String = "qry_2_AC"
        Dim myDate As String
        Dim acName As String
        Dim Objworkbook As Excel.Workbook
        Dim Objworksheet As Excel.Worksheet
        Dim endrow  As Long
    
        On Error Resume Next        ' I suggest usung your favorite error handling setup instead of this
       
         myDate = Format(Date, "mm-dd-yyyy")
         acName = myDate & "_AC Variance.xlsx"
         DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, strExportQueryName, acPath & acName, True
         Set Objworkbook = oXlApp.Workbooks.Open(acPath & acName)
         If Not Objworkbook Is Nothing Then
            Set Objworksheet = Objworkbook.Sheets(strExportQueryName)
            If Not Objworksheet Is Nothing Then
                endrow = FindTheLastRow(Objworksheet)
                If endrow <= 1 Then
                   MsgBox "Atlantic City Has No Data", vbOK, "AC Not Exported"
                Else
                   '... Build your pivot table for Atlantic City Here...
                End If
                Objworkbook.Save
                MsgBox "AC Exported"
            'Else
            ' Code in here allows you to do a little error trapping if the worksheet isn't found
                MsgBox "Sheet " & strExportQueryName & " was not found in workbook """ & acName & """ for Atlantic City."
            End If
            Objworkbook.Close
         'Else
            ' Code in here  allows you to do a little error trapping if the Workbook isn't found
            MsgBox "Workbook """ & acName & """ for Atlantic City could not be opened."
        End If
         Set Objworksheet = Nothing
         Set Objworkbook = Nothing
    End Sub
    
    Private Sub GetTheIowaData(oXlApp As Excel.Application)
        Const acPath As String = "Z:\Reports_&_Audits\Variance\Saved Files\Iowa Region\"
        Const strExportQueryName As String = "qry_2_Ia"
        Dim myDate As String
        Dim acName As String
        Dim Objworkbook As Excel.Workbook
        Dim Objworksheet As Excel.Worksheet
        
        '...
    
         Set Objworksheet = Nothing
         Set Objworkbook = Nothing
    End Sub
    


    -MainSleuth You've Got It, Use It! Engineering, Science, Statistics Solutions http://ToolSleuth.com

    Friday, January 20, 2017 1:28 AM
  • MainSleuth, that does make sense, however I gave up this morning and I just now checked for a response. I redid everything in excel this morning. I'm still learning so your advice did not go without strain. Thank you for your advanced knowledge. 
    Friday, January 20, 2017 11:00 PM
  • Hi,

    Thanks for posting here.

    If you have any new issues, please feel free to post and many community members are willing to help.

    Regards,

    Celeste


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    Monday, January 23, 2017 7:02 AM