使用 VBA 保存查询

Posted

技术标签:

【中文标题】使用 VBA 保存查询【英文标题】:Save query using VBA 【发布时间】:2019-11-09 18:43:53 【问题描述】:

我的表单带有多个用于过滤子表单的文本框。子表单源对象是查询。为了过滤子表单,我更新了查询 SQL 并将查询重新分配为子表单上的源对象。

Set qdf = db.QueryDefs("MyQuery")
qdf.SQL = strNewSQL
mySubForm.SourceObject = "Query.MyQuery" 

过滤工作正常。但是,当我关闭表单时,我会收到一条消息,询问我是否要保存对查询的更改。如何避免此消息?

编辑:- 在@June7 的评论之后,使用关闭表单

DoCmd.Close acForm, "MyForm", acSaveNo

解决了我的问题。

也可以使用嵌入的宏和设置提示=否来关闭表单。

【问题讨论】:

我测试了代码,没有得到提示。你是如何关闭表格的?用完整的程序编辑问题 谢谢你。我正在使用嵌入式宏来关闭表单。我现在已将其更改为使用 DoCmd.Close acForm, "MyForm", acSaveNo,但现在我没有收到提示。 【参考方案1】:

使用 VBA 代替嵌入式宏解决了您的问题,但考虑到代码可以简化为:

CurrentDb.QueryDefs("MyQuery").SQL = strNewSQL
Me.mySubForm.SourceObject = "Query.MyQuery"

【讨论】:

以上是关于使用 VBA 保存查询的主要内容,如果未能解决你的问题,请参考以下文章

使用 vba 将 MS Access 查询输出到 Excel

使用 Access VBA,如何计算选择查询中的输出记录数并将计数存储为 VBA 变量?

MS Access 2013 从 VBA 调用插入查询并出现奇怪的错误

通过 VBA 在 Access 2007 中运行以相同单词开头的多个查询

在 VBA ODBC 中运行附加查询时隐藏对话框

在不使用 VBA/Access 中的内联查询的情况下向表中添加记录