sql - VBA 查询中臭名昭著的 'Invalid USe of Null'

标签 sql ms-access vba null

首先是代码:

    bncSql = "UPDATE mrTool " & _
        " SET mrTool.Action = 'Y', mrTool.TQA = FALSE," & _
        " mrTool.OPID = 'SYS', mrTool.ReasonCode = 'AOK'," & _
        " mrTool.History = 'AOK'" & _
        " WHERE (Nz(CCur([Amount]),0) + Nz(CCur([SFS]),0) <=  0" & _
        " AND mrTool.Action Is Null);"
    DoCmd.RunSQL bncSql

mrTool.Action 被定义为 Text(1) (即单个字符),这就是我假设的位置。 “Is Null”似乎在其他地方都有效 - 当我用“=''”(零长度字符串)替换它时,我想可能是因为它是文本而不是变体,它完全停止工作。

我应该补充一点,我在其他地方有相同的格式,而且似乎工作正常 - 在我使用它之前的 23 个其他地方,它没有给我一个运行时错误。因此,我认为这可能是 SFS 和 Amount 中的错误,因此是 Nz(),但这没有任何帮助 - 仍然出现错误。

我迷茫了……

最佳答案

也许?

WHERE (CCur(Nz([Amount],0)) + CCur(Nz([SFS],0)) <=  0

关于sql - VBA 查询中臭名昭著的 'Invalid USe of Null',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10177680/

相关文章:

excel - 通过不同和特定的工作表循环代码

sql - Access 中的简单 SQL 查询因缺少分号错误而失败

sql - 如何删除并保留最新条目

ms-access - 使用“查找”对话框的 MS Access “Update or CancelUpdate” 错误

vba - 使用 onAction 和参数在运行时在 word vba 中构建菜单

带有内部连接的 MySQL 查询返回零行

php - 从 mysql 数据库获取不必要的数据??? (php)

sql - 将 int 转换为 int32

sql - 如何区分两个表

vba - 在过滤器中使用 "Or"