2015-04-23 1 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 
Смежные вопросы