![](/img/trans.png)
[英]CurrentDb.Execute delete query not deleting anything when its executed from VBA
[英]What's the difference between DoCmd.SetWarnings and CurrentDB.Execute
在對這個答案的評論中,Remou寫道
CurrentDB.Execute "insert sql here"
比...更好
DoCmd.SetWarnings = 0
DoCmd.RunSQL "insert sql here"
由於Access產生的內置警告。 我試圖了解其中的差異。
如果它們都掩蓋了錯誤,為什么第一個優先於第二個呢? 這里有最好的做法嗎?
它們不會掩蓋錯誤。 DoCmd.SetWarnings掩蓋錯誤並且是系統范圍的,不限於您正在使用的單個應用程序。 沒有相應的DoCmd.SetWarnings True
DoCmd.SetWarnings False
意味着操作查詢將在PC上的任何Access應用程序中沒有任何提示的情況下運行。
執行會拋出警告,您需要的警告,例如查詢無法執行,但不會發出您可能不需要的警告,例如“您確定要運行此查詢”。
在這個帖子中 ,訪問MVP的Allen Browne表示他沒有使用Set Warnings。
順便說一句,我通常建議使用CurrentDB的實例,因為這將允許您返回記錄計數,以及其他內容:
Set db = CurrentDB
db.Execute sSQL, dbFailOnError
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.