我有VBA代码来打开参数查询,将查询导出到Excel然后关闭查询。我的问题是,当我输入参数时,我得到第一个导出窗口,然后我必须再次输入参数来完成导出。我想只询问一次参数。这是代码:
DoCmd.OpenQuery "Chapter Roster and Year Dues Paid", acViewNormal, acReadOnly
DoCmd.RunCommand acCmdExportExcel
DoCmd.Close acQuery, "Chapter Roster and Year Dues Paid", acSaveNo
cmdViewChapterRosters_Click_Exit:
Exit Sub
cmdViewChapterRosters_Click_Err:
MsgBox Error$
Resume cmdViewChapterRosters_Click_Exit
我在查询中使用以下代码创建了响应参数: [哪个章节?] 位于查询的 [Chapter Number] 字段中。
答案 0 :(得分:1)
考虑让用户在表单上输入所需的查询值,然后直接在查询中引用此控件。然后,这将消除通常不应该是用户界面的一部分的任何弹出窗口,但警告需要处理查询的缺失值,未知列等。
另外,请考虑不需要打开存储查询的TransferSpreadsheet
和OutputTo
等专用导出方法:
SQL (调整当前查询)
SELECT * FROM TableData WHERE [Chapter Number] = Forms!frmName!TextFieldName
VBA (除非声明文件名路径arg,否则都会提示输入文件名)
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "QueryName"
'DoCmd.OutputTo acOutputQuery, "QueryName", acFormatXLSX
答案 1 :(得分:-2)
我最喜欢的代码行是:DoCmd.OutputTo acOutputQuery,“查询/表名”,acFormatXLSX,“ FileName.xlsx”,0
希望获得帮助。问候。