Hi,
I am trying to refresh a query and it gives me this error: run time error 1004 general ODBC error. I am using the below VBA code. The same code worked fine last month. When I get to this code " Worksheets("Raw Data").QueryTables(1).Refresh BackgroundQuery:=False" I get the error message. By the way, the query is imorting data from excel file. Thanks.
Sub GenerateProjectReports()
Dim rngProjects As Range, rngProject As Range
Dim sProject As String, sSubject As String, sDevelEmail As String
Set rngProjects = Names("vbProjects").RefersToRange
For Each rngProject In rngProjects.Cells
sProject = rngProject.Value
Range("vbProjectCode").Value = sProject
Worksheets("Raw Data").QueryTables(1).Refresh BackgroundQuery:=False
Worksheets("Raw Data").Select
Sheets("Raw Data").Columns("P:P").Select
Selection.NumberFormat = "m/d/yyyy"
Worksheets("PO - Data").QueryTables(1).Refresh BackgroundQuery:=False
While Worksheets("Raw Data").QueryTables(1).Refreshing
Wend
While Worksheets("PO - Data").QueryTables(1).Refreshing
Wend
Worksheets("Spending by External Vendors").Columns("A:H").EntireColumn.AutoFit
Worksheets("Spending By Internal Vendors").Columns("A:H").EntireColumn.AutoFit
Worksheets("Open Purchase Order").Columns("A:H").EntireColumn.AutoFit
If Range("vbRecordCount").Value > 0 Then
sFilename = Range("vbFileName")
sDevelEmail = Range("vbDevEmail")
sSubject = Range("vbSubject")
Sheets("GL VIEW").PivotTables(1).RefreshTable
Sheets("Spending By Internal Vendors").PivotTables(1).RefreshTable
Sheets("Open Purchase Order").PivotTables(1).RefreshTable
Sheets("Spending by External Vendors").PivotTables(1).RefreshTable
Worksheets("Spending by External Vendors").Columns("A:H").EntireColumn.AutoFit
Worksheets("Spending By Internal Vendors").Columns("A:H").EntireColumn.AutoFit
Worksheets("Open Purchase Order").Columns("A:H").EntireColumn.AutoFit
If Range("vbRecordCount").Value > 1 Then
Sheets("GL VIEW").Select
Rows("5:5").Select
Selection.NumberFormat = "m/d/yyyy"
Sheets("GL VIEW").PivotTables(1).RefreshTable
Sheets("GL VIEW").Range("C5").Group Start:=True, End:=True, periods:=Array(False, False, False, False, True, False, False)
Sheets("Spending by External Vendors").Select
Rows("9:9").Select
Selection.NumberFormat = "m/d/yyyy"
Sheets("Spending by External Vendors").PivotTables(1).RefreshTable
Sheets("Spending by External Vendors").Range("D8").Group Start:=True, End:=True, periods:=Array(False, False, False, _
False, True, False, False)
Sheets("Spending By Internal Vendors").Select
Rows("9:9").Select
Selection.NumberFormat = "m/d/yyyy"
Sheets("Spending By Internal Vendors").PivotTables(1).RefreshTable
Sheets("Spending By Internal Vendors").Range("D8").Group Start:=True, End:=True, periods:=Array(False, False, False, _
False, True, False, False)
End If
Sheets("Open Purchase Order").PivotTables(1).RefreshTable
'Sheets("2008 PIVOT").PivotTables(1).RefreshTable
'Sheets("2009 PIVOT").PivotTables(1).RefreshTable
Sheets(Array("Operational Cost", "Raw Data", "GL VIEW", "Open Purchase Order", "Spending By Internal Vendors", "Spending by External Vendors", "PO - Data", "Month Budget", "YTD Budget", "Year Budget", "Month Forecast", "YTD Forecast", "Year Forecast")).Copy
Sheets("Raw Data").Visible = False
Sheets("GL VIEW").Visible = False
Sheets("PO - Data").Visible = False
Sheets("Month Budget").Visible = False
Sheets("YTD Budget").Visible = False
Sheets("Year Budget").Visible = False
Sheets("Month Forecast").Visible = False
Sheets("YTD Forecast").Visible = False
Sheets("Year Forecast").Visible = False
ActiveWorkbook.UpdateLinks = xlUpdateLinksNever
' to give the file the xlsm for compatibility mode I changed the name of the file in the cost report from xls to xlms and I added file format
ActiveWorkbook.SaveAs sFilename, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
ActiveWorkbook.Close
End If
If rngProject = 0 Then Exit Sub
Next rngProject
End Sub