使用可以为空的变量更新Access中的查询但约束阻止更新

时间:2014-11-17 18:18:06

标签: sql vba

好的,所以我有一个更新查询,在VBA中:

dim StatusID as Long

 SQLString = "UPDATE tblRegister SET tblRegister.Status = " & StatusID & " WHERE tblRegister.ID = 'reg01'

还有一个表状态,其中包含statusID 1到5及其描述。

用户可以在组合框中选择状态。现在,如果用户尚未选择状态(可以),则StatusID的值将为0.由于状态和寄存器之间存在关系,因此更新查询将不接受该0。

我无法将Long类型设置为-1或NULL ...

有人有想法吗? (查询比上面的要长得多,所以如果Status = 0那么简单就行了..

1 个答案:

答案 0 :(得分:1)

如何使用IIF

SQLString = "UPDATE tblRegister" & _
            " SET tblRegister.Status = " & IIF(StatusID=0,"NULL", StatusID) & _
            " WHERE tblRegister.ID = 'reg01'