在this answer的评论中,Remou写道
CurrentDB.Execute "insert sql here"
优于
DoCmd.SetWarnings = 0
DoCmd.RunSQL "insert sql here"
由于Access产生的内置警告。我试图了解其中的差异。
如果它们都掩盖了错误,为什么第一个优先于第二个呢?这里有最好的做法吗?
答案 0 :(得分:18)
他们不会同时掩盖错误。 DoCmd.SetWarnings掩盖错误并且是系统范围的,不限于您正在使用的单个应用程序。没有相应DoCmd.SetWarnings False
的{{1}}意味着操作查询将在PC上的任何Access应用程序中没有任何提示的情况下运行。
执行会抛出警告,您需要的警告,例如查询无法执行,但不会发出您可能不需要的警告,例如“您确定要运行此查询”。
In this thread访问MVP的Allen Browne表示他不使用Set Warnings。
顺便说一句,我通常建议使用CurrentDB的实例,因为这将允许您返回记录计数,以及其他内容,所以:
DoCmd.SetWarnings True