Jim*_*ena 13 sql error-handling ms-access vba access-vba
在对这个答案的评论中,Remou写道
CurrentDB.Execute "insert sql here"
比...更好
DoCmd.SetWarnings = 0
DoCmd.RunSQL "insert sql here"
由于Access产生的内置警告.我试图了解其中的差异.
如果它们都掩盖了错误,为什么第一个优先于第二个呢?这里有最好的做法吗?
Fio*_*ala 18
它们不会掩盖错误.DoCmd.SetWarnings掩盖错误并且是系统范围的,不限于您正在使用的单个应用程序.DoCmd.SetWarnings False
没有相应的 DoCmd.SetWarnings True
意味着操作查询将在PC上的任何Access应用程序中没有任何提示的情况下运行.
执行会抛出警告,您需要的警告,例如查询无法执行,但不会发出您可能不需要的警告,例如"您确定要运行此查询".
在这个帖子中,访问MVP的Allen Browne表示他没有使用Set Warnings.
顺便说一句,我通常建议使用CurrentDB的实例,因为这将允许您返回记录计数,以及其他内容:
Set db = CurrentDB
db.Execute sSQL, dbFailOnError
Run Code Online (Sandbox Code Playgroud)