MS Access 2013 SQL类型不匹配错误

时间:2015-03-02 21:13:00

标签: sql vba ms-access-2013

我有一个名为test的表,其类型为number(Long Integer),名称为CHANGEME。此列的值范围从null到大整数。我正在尝试选择所有空值并将它们更新为0.我在VBA代码中执行此操作。

SQL = "UPDATE test SET test.CHANGEME = 0 WHERE test.CHANGEME Is Null"
DoCmd.RunCommand SQL

这会产生类型不匹配错误。

但是如果我在用户界面中创建一个查询并复制并粘贴SQL语句并添加一个;在最后,删除“它的工作完美。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

我不确定您使用DoCmd.RunCommand的方式;它可能需要一个常量,而不是一个字符串。

相反,我更喜欢使用类似的东西:

Dim strSQL as String
strSQL = "UPDATE test SET test.CHANGEME = 0 WHERE test.CHANGEME Is Null"
With CurrentDb
    .Execute strSQL, dbFailOnError
    Msgbox .RecordsAffected & " records were updated"
End With

dbFailOnError很重要;如果省略它并且存在语法错误等,则不会收到警报。使用.Execute作为一种方法适用于您的代码,因为它不会在您每次运行时提示您确认操作。

希望这有帮助。