【问题标题】:ms-access - how to automatically select yes in warning message boxesms-access - 如何在警告消息框中自动选择是
【发布时间】:2009-12-09 09:10:13
【问题描述】:

在 ms-access 中,我正在运行一个运行多个查询的宏,在执行查询期间会出现一个消息框

“您将要运行更新.........您确定要运行此查询吗?”

如何自动选择所有此类情况,以便宏在没有人工干预的情况下运行。

【问题讨论】:

    标签: sql ms-access


    【解决方案1】:

    您可以像这样临时关闭警告:

    DoCmd.SetWarnings = False
    DoCmd.RunSQL ...
    DoCmd.SetWarnings = True
    

    【讨论】:

    • 这是一个不好的建议,因为 1)您还需要将 docmd.setwarnings = true 添加到错误处理中; 2)运行execute会给你更好的错误。
    【解决方案2】:

    通常最好在这种情况下使用 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 还有许多其他有用的方面

    【讨论】:

    • 除非您需要影响记录的值,否则您不需要定义 db 或 qdf。
    【解决方案3】:

    为避免每次执行任意 SQL 时都必须编写 @Remou 提供的代码,您可以使用 my SQLRun function, which is designed as a dropin replacement for DoCmd.RunSQL 并避免所有问题。

    【讨论】:

    • @Remou:你是对的——看来我指的是你的代码。帖子已更正。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-20
    • 1970-01-01
    • 2018-03-22
    • 2018-05-17
    • 2011-01-07
    相关资源
    最近更新 更多