MS Access出错时崩溃

时间:2014-03-06 10:25:41

标签: ms-access error-handling

我写了一个小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没有告诉我,当我写它时有些东西丢失了?通常对此非常迂腐。

2 个答案:

答案 0 :(得分:1)

声明

CurrentDb.Execute

不会编译。

  

编译错误:参数不是可选的。

您的受害者;)在尝试运行代码时必须遇到错误,这会触发“动态”编译。代码中的错误捕获无法处理,因为您的代码永远不会有机会运行(因为它无法编译)。

换句话说,如果你试图运行(或至少编译)你的代码,Access 对你嗤之以鼻......:)

答案 1 :(得分:0)

尝试压缩并修复数据库。

如果这不起作用,请创建一个新的空数据库并从有问题的数据库中导入所有对象。也许,您可以每次导入一些对象来确定哪个是损坏的对象(如果有的话。有时Access会有这种行为,并且没有任何不良对象)。