有沒有辦法從MS Access中運行操作查詢時彈出的「警告」中捕獲(通過vba)的信息?vba中的捕獲操作查詢警告(MS Access)
如:當更新查詢運行時,我想捕獲要更新的記錄數量,並將其與我的代碼中的另一個變量進行比較。
如果可能的話,我想保持警告設置爲關閉!我想我正在查看是否有任何方法來自定義動作查詢警告。首先十分感謝!
有沒有辦法從MS Access中運行操作查詢時彈出的「警告」中捕獲(通過vba)的信息?vba中的捕獲操作查詢警告(MS Access)
如:當更新查詢運行時,我想捕獲要更新的記錄數量,並將其與我的代碼中的另一個變量進行比較。
如果可能的話,我想保持警告設置爲關閉!我想我正在查看是否有任何方法來自定義動作查詢警告。首先十分感謝!
使用Execute
ADO的方法(請參閱回答@邁克爾Z.)或DAO:
Dim db As DAO.Database
Set db = CurrentDb
db.Execute "SELECT * INTO someschema.sometable FROM someschema.anothertable", dbFailOnError
MsgBox db.RecordsAffected
Querydefs也有RecordsAffected
財產。避免使用DoCmd.RunSQL
命令。
爲什麼我應該避免使用DoCmd.RunSQL命令?感謝您的反饋 – DrL
因爲您需要抑制錯誤消息並且無權訪問RecordsAffected屬性。錯誤抑制會影響整個應用程序,如果您不能啓用它,例如錯誤,即使表單/報告/查詢構建器也不會問您保存 –
我相信你正在尋找DoCmd.SetWarnings False
https://msdn.microsoft.com/VBA/Access-VBA/articles/docmd-setwarnings-method-access
爲了獲得影響你必須像這樣運行的查詢行。
Dim recordsAffected As Long
cn.Execute "SELECT * INTO someschema.sometable FROM someschema.anothertable", _
recordsAffected
MsgBox recordsAffected
還需要聲明和設置cn對象變量? – June7
是的,但我數字OP應該已經有了。我會稍微更新答案。 –
https://support.office.com/zh-cn/article/Turn-action-query-confirmation-messages-on-or-off-e58e4bba-9d54-4b9d-b962-9eca048e5335 – y4cine