从 VB 调用时,NZ() 函数似乎不起作用,是否有替代方法

The NZ() function seems not to work when called from VB, is there an alternative

我正在处理添加查询。
在添加查询中,我试图用真值或假值填充字段 C,具体取决于字段 A.
中的值 如果字段 A 中的值等于 -1,则字段 C 中的值应为 true (-1)

我认为解决方案如下所示,但我得到的结果是 #Error

C: IIf([A]='-1',True,False)

似乎 return 预期结果的解决方案如下:
B: IIf(Nz([A])='-1',True,False)

这个(NZ 函数)的问题在于,当 运行 使用 VB(ADO、DAO 或 OLEDB)

进行查询时,它会抛出错误

我的问题是:
在不使用 NZ 函数的情况下,可以使用什么公式来获得所需的结果 所需的结果在字段 B

中给出

由于您使用引号,我假设您的值是一个字符串。在这种情况下,Nz 会将 Null 转换为 zero-length 字符串。

您可以通过简单地连接一个空字符串来实现相同的目的:

IIf([A] & ''='-1',True,False)

一个更通用的解决方案是使用 IIf,它允许您指定空值的替代值:

IIf(IIf([A] IS NULL, '', [A]) = '-1', True, False)

由于[A]是数字,你只需要将它与True进行比较:

C: [A]=True