【发布时间】:2017-07-03 03:00:27
【问题描述】:
有没有办法从在 MS Access 中运行操作查询时弹出的“警告”中捕获(通过 vba)信息?
如:运行更新查询时,我想捕获要更新的记录数,并将其与代码中的另一个变量进行比较。
如果可能的话,我希望将警告设置为关闭!我想我正在寻找是否有任何方法可以自定义操作查询警告。提前非常感谢!
【问题讨论】:
有没有办法从在 MS Access 中运行操作查询时弹出的“警告”中捕获(通过 vba)信息?
如:运行更新查询时,我想捕获要更新的记录数,并将其与代码中的另一个变量进行比较。
如果可能的话,我希望将警告设置为关闭!我想我正在寻找是否有任何方法可以自定义操作查询警告。提前非常感谢!
【问题讨论】:
使用 ADO 的 Execute 方法(参见答案@Michael 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.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
【讨论】: