Возможно, вам придется создать SQL «на лету» и сохранить его для метода DoCmd.OutputTo для экспорта для вас. Что-то вроде.
Option Compare Database
Option Explicit
Sub ExportQueryToExcel()
Dim dbObj As DAO.Database, qdObj As DAO.QueryDef
Dim filePath As String, sqlText As String, yourVariable As String
Set dbObj = CurrentDb
yourVariable = "Apple"
sqlText = "SELECT a, b, c WHERE a Is Not Null And b = '" & yourVariable & "'"
filePath = "C:\Users\P\Desktop\fileName.xlsx"
On Error Resume Next
With dbObj
.QueryDefs.Delete "tmpDataQry"
Set qdfNew = .CreateQueryDef("tmpDataQry", sqlText)
.Close
End With
On Error GoTo 0
DoCmd.OutputTo acOutputQuery, "tmpDataQry", acFormatXLSX, filePath
Set qdObj = Nothing
Set dbObj = Nothing
End Sub
Можете ли вы опубликовать пример того, что вы пробовали и как далеко вы дошли до сих пор? –
В чем проблема? – exoddus
Вы можете установить набор записей как выход SQL, который затем создает книгу Excel и использовать метод .copyfromRecordset для его копирования. У меня есть код, если вы заинтересованы. – Sam