Access + VBA + SQL - How to export multiple queries into one excel Workbook, but, multiple Worksheet using the criteria from a table

前端 未结 1 1559
慢半拍i
慢半拍i 2021-01-03 13:44

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

相关标签:
1条回答
  • 2021-01-03 14:39

    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.

    0 讨论(0)
提交回复
热议问题