Доступ к VBA Macro для запуска сквозного запроса - PullRequest
0 голосов
/ 18 мая 2018

У меня есть встроенный запрос Teradata для экспорта данных в электронную таблицу Excel.Я пытаюсь автоматизировать его, но когда я запускаю макрос или открываю запрос, появляется окно с запросом источника данных.У меня создано соединение ODBC, и я думаю, что должен быть способ заставить макрос передавать имя источника данных, чтобы он работал без взаимодействия.

enter image description here

Редактировать: добавление макроса по запросу

Function AutoExec()
On Error GoTo AutoExec_Err

DoCmd.OutputTo acOutputQuery, "Performance Interval Data", "ExcelWorkbook(*.xlsx)", _
"filepath\filename.xlsx", False, "", , acExportQualityPrint
    DoCmd.Quit acExit    

AutoExec_Exit:
    Exit Function

AutoExec_Err:
    MsgBox Error$
    Resume AutoExec_Exit

End Function

1 Ответ

0 голосов
/ 19 мая 2018

Пара проблем, (не могу проверить ничего из этого прямо сейчас, так как у меня в настоящее время нет доступа к Access для тестирования), но это выглядит так:

  1. Вы пытаетесь выполнить OutputToнасколько мне известно, запрос, который неосуществим.
  2. Ваш путь к файлу настроен как filepath\filename.xlsx, если только это не фактическое местоположение и имя вашего листа Excel, мне что-то не так.
  3. Я действительно не думаю, что этот макрос относится к ODBC любого вида в его текущем состоянии.

Но вы должны хотя бы начать с исправления filepath выпуск.Это должен быть полный путь к файлу Excel и полное имя файла.(т. е. C:\TEMP\TestExcelSheet.xlsx)

С учетом всего сказанного, вы можете хотеть просто пойти с чем-то вроде этого (хотя немного сложно определить, действительно ли вы этого хотите или нет)):

'Export Excel file from Query
DoCmd.TransferSpreadsheet acExport, , "acOutputQuery", _
"C:\TEMP\TestExcelSheet.xlsx", True

ПРИМЕЧАНИЕ: "acOutputQuery" должно быть фактическим именем вашего проходного запроса, "C:\TEMP\TestExcelSheet.xlsx" будет вашим целевым путем, а True добавляет заголовки запроса влист False, чтобы игнорировать заголовки.

...