2

先上代码:

    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”似乎在其他任何地方都有效 - 当我用“=''”(零长度字符串)替换它时,认为可能是因为它是 Text 而不是 Variant,它完全停止工作。

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

我很茫然...

4

1 回答 1

2

也许?

WHERE (CCur(Nz([Amount],0)) + CCur(Nz([SFS],0)) <=  0
于 2012-04-16T16:12:30.943 回答