Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 访问VBA宏以运行直通查询_Ms Access_Vba_Pass Through - Fatal编程技术网

Ms access 访问VBA宏以运行直通查询

Ms access 访问VBA宏以运行直通查询,ms-access,vba,pass-through,Ms Access,Vba,Pass Through,我有一个内置的传递查询Teradata,用于将数据导出到Excel电子表格。我正在尝试将其自动化,但当我运行宏或打开查询时,会弹出一个窗口询问数据源。我创建了一个ODBC连接,我认为必须有一种方法使宏传递数据源名称,这样它就可以在没有交互的情况下运行 编辑:根据请求添加宏 Function AutoExec() On Error GoTo AutoExec_Err DoCmd.OutputTo acOutputQuery, "Performance Interval Data", "Exce

我有一个内置的传递查询
Teradata
,用于将数据导出到Excel电子表格。我正在尝试将其自动化,但当我运行宏或打开查询时,会弹出一个窗口询问数据源。我创建了一个ODBC连接,我认为必须有一种方法使宏传递数据源名称,这样它就可以在没有交互的情况下运行

编辑:根据请求添加宏

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
两个问题(目前无法验证任何一个,因为我目前没有访问权限进行测试),但它看起来像:

  • 据我所知,您正试图输出一个查询 这是不可行的
  • 您的文件路径设置为
    filepath\filename.xlsx
    ,除非这是Excel工作表的实际位置和名称,否则可能会出现一些问题 我错了
  • 我并不认为这个宏与当前状态下的任何类型的
    ODBC
    相关
  • 但是,您至少应该从解决文件路径问题开始。这应该是Excel文件的完整路径以及文件的全名。(即
    C:\TEMP\TestExcelSheet.xlsx

    话虽如此,你可能只想做这样的事情(尽管很难判断这是否是你真正想要的):


    注意:
    “acOutputQuery”
    应该是直通式查询的实际名称,
    “C:\TEMP\TestExcelSheet.xlsx”
    将是目标路径,
    True
    将查询的标题添加到表中,
    False
    忽略标题。

    您在ODBC查询中设置了连接字符串吗?您可以在谷歌上搜索无DSN连接字符串是否可以发布您尝试运行的宏?函数AutoExec()出错转到AutoExec_Err DoCmd.OutputTo acOutputQuery,“性能间隔数据”,“Excel工作簿(*.xlsx)”,“filepath\filename.xlsx”,False,“,acExportQualityPrint DoCmd.Quit acExit AutoExec_Exit:Exit Function AutoExec_Err:MsgBox Error$Resume AutoExec_Exit End Function我按照您的建议修改了代码,但我看到的唯一区别是导出已格式化列名。我的主要问题是,当我运行宏时,Access会弹出一个窗口来选择数据源。我需要阻止这种事情发生。
    'Export Excel file from Query
    DoCmd.TransferSpreadsheet acExport, , "acOutputQuery", _
    "C:\TEMP\TestExcelSheet.xlsx", True