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

Posted

技术标签:

【中文标题】在 VBA ODBC 中运行附加查询时隐藏对话框【英文标题】:Hide Dialog box when running append query in VBA ODBC 【发布时间】:2014-12-08 16:39:13 【问题描述】:

我想使用 VBA 通过单击按钮运行保存的访问查询。我不希望用户被要求确认它是否运行。

代码:

DoCmd.OpenQuery "QryAddTraining", acViewNormal, acAdd

这会弹出对话框“您将要运行将修改表中的数据的追加查询” ....

我只希望 VBA 代码自动选择“是”并阻止用户看到此界面。

【问题讨论】:

【参考方案1】:

使用DAO.Database.Execute 执行您的查询:

Dim db As DAO.Database
Set db = CurrentDb
db.Execute "QryAddTraining", dbFailOnError 

dbFailOnError 选项不是必需的,但包含它可以为您提供更好的错误信息。有关详细信息,请查看 Access 帮助主题。

【讨论】:

您也可以使用DoCmd.Setwarnings False,但我更喜欢@HansUp 建议的方法,因为它可以让您识别关闭SetWarnings 时未显示的其他类型的错误。 (如果你使用SetWarnings,完成后别忘了重新打开它。) 编写更短代码的快速提示:您可以将 3 行替换为 CurrentDB.Execute "QryAddTraining", dbFailOnError

以上是关于在 VBA ODBC 中运行附加查询时隐藏对话框的主要内容,如果未能解决你的问题,请参考以下文章

运行 Access Query 时反复弹出不需要的 SQL Server 登录对话框

Excel-VBA 通过 ODBC 驱动程序到 SQLite3:主数据库 + 附加数据库

如何在 Access VBA 中运行附加查询以根据表单字段中的数量创建一定数量的相同记录?

从 MS Access VBA 通过 ODBC 进行 MySQL 查询:ADODB 异步执行不起作用

我在附加数据库时出现这示一个对话框提示:Micrsoft sql_dmo(odbc sqlstate:HY000)错误:823

在 Access 中使用 ODBC 连接到 MS SQL Server 2012:手动调用查询和在 VBA 中调用查询之间的巨大时间差异