访问VBA宏以运行通过查询

时间:2018-05-18 17:51:17

标签: ms-access access-vba pass-through

我在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 :(得分:0)

一些担忧,(现在无法验证这些内容,因为我目前无法访问Access进行测试),但它看起来像:

  1. 据我所知,您正在尝试输出查询 是不可行的。
  2. 您的文件路径设置为filepath\filename.xlsx,除非这是Excel工作表的实际位置和名称 对我不对。
  3. 我真的不认为这个宏与当前状态下的ODBC有关。
  4. 但是,至少应该从修复文件路径问题开始。这应该是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会添加查询&#39}。将标题添加到工作表中,False忽略标题。