I need some help with export multiple queries into one excel Workbook, but, multiple Worksheet? using the criteria from a table in MS Access VBA
ATTACHED IS DB for R
The following VBA code works for me, creating a new Excel workbook (.xlsx
file) containing multiple worksheets (mySheet1
and mySheet2
):
Option Compare Database
Option Explicit
Sub ExportToXlsx()
Dim cdb As DAO.Database, qdf As DAO.QueryDef
Set cdb = CurrentDb
Const xlsxPath = "C:\Users\Gord\Desktop\foo.xlsx"
' create .xlsx file if it doesn't already exist, and add the first worksheet
Set qdf = cdb.CreateQueryDef("mySheet1", _
"SELECT * FROM Clients WHERE ID Between 1 And 5")
Set qdf = Nothing
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "mySheet1", xlsxPath, True
DoCmd.DeleteObject acQuery, "mySheet1"
' file exists now, so this will add a second worksheet to the file
Set qdf = cdb.CreateQueryDef("mySheet2", _
"SELECT * FROM Clients WHERE ID Between 6 And 10")
Set qdf = Nothing
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "mySheet2", xlsxPath, True
DoCmd.DeleteObject acQuery, "mySheet2"
Set cdb = Nothing
End Sub
Note that the name of the worksheet is taken from the name of the query (or table) being exported. If a worksheet with that name does not exist in the Excel file then it will be added.