在 Access 的 IIf 函数中,如何分配空值?

In an IIf function in Access, how do I assign null values?

我正在 MS Access 的查询中创建计算字段 (Field3)。在此示例中,Field2 包含数字值和字符值。我希望 Field3 仅包含来自 Field2 的数值并将所有字符值转换为 Null 值,以便我稍后可以将 Field3 作为数字字段执行计算。这是在 IIf 函数中,因为如果 Field1 = "AA",我希望 Field3 仅包含来自 Field2 的值。这是我尝试在查询设计视图的字段行中键入的内容:

Field3: IIf([Field1]="AA",[Field2]*1,NULL)

除非 Field2 是一个字符值,否则 Field3 读取“#Error”而不是空白。

如果不满足 IIf 条件,分配 NULL 值的正确语法是什么?

Null 正确的语法。

但至少在我这台机器上的旧德语 Access 版本中,我需要在查询设计视图中使用分号而不是逗号。

那你可以试试这个吗?

Field3: IIf([Field1]="AA";[Field2]*1;NULL)

在SQL视图中,语法与你的问题完全一样:

SELECT IIf([Field1]="aa",[Field2]*1,Null) AS Field3
FROM TestTable;

如果您希望表达式 return [Field2]*1 仅当 [Field1]="AA" 且 [Field2] 包含数字时,否则 return Null,请使用IsNumeric() 在条件...

IIf([Field1]='AA' And IsNumeric([Field2]), [Field2]*1, Null)

如果 [Field2]*1 的目的是将 [Field2] 文本值转换为数字,请考虑使用 Val() 函数...

IIf([Field1]='AA' And IsNumeric([Field2]), Val([Field2]), Null)