Currentdb.Execute(Database.Execute)不起作用或引发错误

时间:2019-04-08 12:16:11

标签: vba ms-access access-vba

我正在尝试通过SQL将变量中的2个值插入表中,代码完成没有错误,但条目未显示在表中。

我尝试在imimate窗口中执行代码,但是这给了我关于方括号的错误(不知道如何正确地在其中输入提示),因此我将查询从具有变量更改为具有要插入的设置值,但仍然无法正常工作,也不会产生错误。

我确保代码中没有“ On Error”,并尝试手动构建错误。语法错误会像往常一样显示,因此我假设出现错误消息后一切都很好。

'Table Columns: ID, ProjectID, Versionnumber

SQL = "INSERT INTO tblVersion " & _
"(ProjectID, Versionnumber) " & _
"VALUES (1, 'v3.0');"
Currentdb.Execute SQL

我希望打开表时会显示“值”。相反,什么也没发生。

1 个答案:

答案 0 :(得分:3)

CurrentDb.Execute默认情况下不会引发所有错误。它会无声无息地失败,而不会让您不依赖任何On Error语句而使查询不成功。

据我所知,所有在编译时可能产生的错误(语法错误,无效的表名或字段名)都会引发,而运行时错误(违反约束,重复的主键等)不会不能长大。

要获取所有错误,请使用dbFailOnError。如果单个操作遇到错误(例如,一行违反了约束),这也会导致整个查询失败,而如果没有错误,则只有失败的操作无法通过。

因此,概括地说,请使用:

Currentdb.Execute SQL, dbFailOnError