首先是代码:
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/