在MS-訪問我一個消息框出現MS-訪問 - 如何
查詢的執行過程中運行,運行多個查詢一個宏,在警告消息框自動選擇是「你是即將運行更新..........你確定要運行這個查詢嗎?「
我該如何自動選擇所有這些情況,以便在沒有人爲干預的情況下運行宏。
在MS-訪問我一個消息框出現MS-訪問 - 如何
查詢的執行過程中運行,運行多個查詢一個宏,在警告消息框自動選擇是「你是即將運行更新..........你確定要運行這個查詢嗎?「
我該如何自動選擇所有這些情況,以便在沒有人爲干預的情況下運行宏。
您可以關閉暫時的警告是這樣的:
DoCmd.SetWarnings = False
DoCmd.RunSQL ...
DoCmd.SetWarnings = True
它通常最好使用在這樣的情況下執行,以捕獲錯誤:
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
除非您需要recordsaffected值您不需要定義db或qdf。 – 2009-12-09 17:51:25
爲避免每次執行任意SQL時必須編寫@Remou代碼,您可以使用my SQLRun function, which is designed as a dropin replacement for DoCmd.RunSQL並避免出現所有問題。
Tony提供哪些代碼? – Fionnuala 2009-12-10 10:21:53
@Remou:你是對的 - 它看起來就是我所指的代碼。發佈更正。 – 2009-12-18 01:50:12
這是不好的建議,因爲1)您還需要添加docmd.setwarnings = true來處理錯誤; 2)運行execute會給你更好的錯誤。 – 2009-12-09 17:50:34