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

Sql 使用变量更新Access中的查询,该变量可以为空,但约束会阻止更新,sql,vba,Sql,Vba,好的,我有一个更新查询,whithin VBA: dim StatusID as Long SQLString = "UPDATE tblRegister SET tblRegister.Status = " & StatusID & " WHERE tblRegister.ID = 'reg01' 还有一个表statuses,其中包含statusID 1到5及其说明 用户可以在组合框中选择状态。现在,如果用户尚未选择状态(这是确定的),StatusID的值将为0。更新查询

好的,我有一个更新查询,whithin VBA:

dim StatusID as Long

 SQLString = "UPDATE tblRegister SET tblRegister.Status = " & StatusID & " WHERE tblRegister.ID = 'reg01'
还有一个表statuses,其中包含statusID 1到5及其说明

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

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

有人有主意吗?(查询比上面的要长得多,因此如果Status=0,那么简单的..就不行了。

如何使用


当StatusID设置为0时,您希望发生什么?是否希望默认为实际有效的StatusID值,是否希望阻止Update语句运行,或者执行其他操作?我希望更新所有其余字段(示例中未显示),并为statusID输入一个空值。就是这样!谢谢。工作起来很有魅力
SQLString = "UPDATE tblRegister" & _
            " SET tblRegister.Status = " & IIF(StatusID=0,"NULL", StatusID) & _
            " WHERE tblRegister.ID = 'reg01'