2015-04-23 22 views
0

當按下按鈕時,我想執行一個使用變量的SQL語句。使用變量訪問查詢並導出到Excel

例如:

SELECT a, b, 
FROM data 
WHERE a IS NOT NULL 
    AND b = '&<Variable>&'; 

然後查詢的結果將被導出到Excel文件的工作表。

+0

你能發表一個你嘗試過的例子嗎?到目前爲止你有多遠? –

+0

有什麼問題? – exoddus

+1

您可以將記錄集設置爲SQL輸出,然後創建Excel書籍並使用.copyfromRecordset方法複製它。如果您有興趣,我有代碼。 – Sam

回答

1

您可能需要立即創建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