MS Access参数查询

时间:2016-11-04 19:36:13

标签: vba ms-access-2010

我有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] 字段中。

2 个答案:

答案 0 :(得分:1)

考虑让用户在表单上输入所需的查询值,然后直接在查询中引用此控件。然后,这将消除通常不应该是用户界面的一部分的任何弹出窗口,但警告需要处理查询的缺失值,未知列等。

另外,请考虑不需要打开存储查询的TransferSpreadsheetOutputTo等专用导出方法:

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

希望获得帮助。问候。