使用 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 调用插入查询并出现奇怪的错误