2
代碼第一臭名昭著的「空的無效使用」:在VBA查詢
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被定義爲文本(1)(即,單一的字符),它是其中I假設它是。 「Is Null」似乎可以在其他地方工作 - 當我用「=''」(零長度字符串)替換它時,也許是因爲它是Text not Variant,它完全停止工作。
我應該補充一點,我有相同的格式elsewehere,它似乎工作正常 - 它不會給我一個運行時錯誤之前,我使用它的23個地方。因此,我想也許這是SFS和金額的錯誤,因此Nz(),但這沒有任何幫助 - 仍然得到錯誤。
我不知所措...
我同意。 CCur功能需要在NZ功能之後使用,而不是其他方式。 – HK1 2012-04-16 16:14:02
這似乎做到了!我不知道它是否正常工作,但至少它沒有錯誤。 :) 謝謝!我現在可以停止拉頭髮了。 – graidan 2012-04-16 16:20:42
我不確定你可以停止拉頭髮。我測試了你的SQL,就像你上面發佈的那樣,@graidan,帶有Action文本(1)的表格,它工作正常。 – Fionnuala 2012-04-16 16:26:41