【发布时间】:2009-12-09 09:10:13
【问题描述】:
在 ms-access 中,我正在运行一个运行多个查询的宏,在执行查询期间会出现一个消息框
“您将要运行更新.........您确定要运行此查询吗?”
如何自动选择所有此类情况,以便宏在没有人工干预的情况下运行。
【问题讨论】:
在 ms-access 中,我正在运行一个运行多个查询的宏,在执行查询期间会出现一个消息框
“您将要运行更新.........您确定要运行此查询吗?”
如何自动选择所有此类情况,以便宏在没有人工干预的情况下运行。
【问题讨论】:
您可以像这样临时关闭警告:
DoCmd.SetWarnings = False
DoCmd.RunSQL ...
DoCmd.SetWarnings = True
【讨论】:
通常最好在这种情况下使用 Execute 来捕获错误:
Dim db As Database, qdf As QueryDef, strSQL As String
Set db = CurrentDb
Set qdf = db.QueryDefs("Query17")
qdf.Execute dbFailOnError
Debug.Print qdf.RecordsAffected
或者
strSQL="UPDATE SomeTable SET SomeField=10"
db.Execute strSQL, dbFailOnError
Debug.Print db.RecordsAffected
使用 dbFailOnError 和错误陷阱捕获错误或多或少是必不可少的,Execute Statement 还有许多其他有用的方面
【讨论】:
为避免每次执行任意 SQL 时都必须编写 @Remou 提供的代码,您可以使用 my SQLRun function, which is designed as a dropin replacement for DoCmd.RunSQL 并避免所有问题。
【讨论】: