我写了一个小SQL命令来纠正表中的字段。因为它太小了(也许我有点傲慢)我甚至没有运行过一次,只是把它放到一个不同用户的更新包中。
Dim SQL As String
Dim rs As DAO.Recordset
On Error GoTo errhandler
SQL = "UPDATE Table1 SET Name = 'Calender' WHERE Name = 'Clalender'"
CurrentDb.Execute
errhandler:
Exit Sub
这就是为什么我没注意到它应该是
CurrentDb.Execute (SQL)
当用户启动此命令时,Access会说“严重错误”并关闭。
为什么错误处理没有发现错误?为什么Access没有告诉我,当我写它时有些东西丢失了?通常对此非常迂腐。
答案 0 :(得分:1)
声明
CurrentDb.Execute
不会编译。
编译错误:参数不是可选的。
您的受害者;)在尝试运行代码时必须遇到错误,这会触发“动态”编译。代码中的错误捕获无法处理,因为您的代码永远不会有机会运行(因为它无法编译)。
换句话说,如果你试图运行(或至少编译)你的代码,Access 会对你嗤之以鼻......:)
答案 1 :(得分:0)
尝试压缩并修复数据库。
如果这不起作用,请创建一个新的空数据库并从有问题的数据库中导入所有对象。也许,您可以每次导入一些对象来确定哪个是损坏的对象(如果有的话。有时Access会有这种行为,并且没有任何不良对象)。