Nz 函数

当Variant 为Null 时, 可以使用Nz函数返回0、 零长度字符串 ("") 或另一个指定的值。 例如, 可以使用此函数将Null值转换为其他值, 并防止它通过表达式传播。

语法

Nz ( variant [, valueifnull ] )

Nz 函数的语法有以下参数:

参数

说明

Variant

必需。 可变的数据类型变量

valueifnull

可选(除非用于查询中)。 如果变量参数为,提供值的变量将被返回。 此参数允许您返回非零值或零长度的字符串。

注意: 如果在查询表达式中使用 Nz 函数而不使用 valueifnull 参数,那么在包含空值的字段中结果将是零长度字符串。


如果variant参数的值为Null, 则Nz函数返回数字零或零长度字符串 (在查询表达式中使用时, 始终返回零长度字符串), 具体取决于上下文是否指示值应为数字或字符串。 如果包含可选的valueifnull参数, 则Nz函数将返回该参数指定的值 (如果variant参数为Null)。 当在查询表达式中使用时, NZ函数应始终包含valueifnull参数,

如果variant的值不为 Null, 则Nz函数返回variant的值。

备注

Nz函数对于可能包含Null值的表达式非常有用。 若要强制表达式计算为非null值 (即使它包含Null值), 请使用Nz函数返回0、零长度字符串或自定义返回值。

例如, 当VariantvarXnull时, 表达式 2 + varX 将始终返回null值。 但是, 2 + Nz(varX) 返回2。

您通常可以使用Nz函数作为IIf函数的替代方法。 例如, 在以下代码中, 需要两个包含IIf函数的表达式来返回所需的结果。 第一个包含IIf函数的表达式用于检查变量的值, 如果该变量为Null, 则将其转换为零。

varTemp = IIf(IsNull(varFreight), 0, varFreight)
varResult = IIf(varTemp > 50, "High", "Low")

在下一个示例中, Nz函数提供与第一个表达式相同的功能, 而所需的结果在一个步骤中实现, 而不是两个步骤。

varResult = IIf(Nz(varFreight) > 50, "High", "Low")

如果为可选参数valueifnull提供一个值, 则当variantNull时, 将返回该值。 通过包含此可选参数, 你或许能够避免使用包含IIf函数的表达式。 例如, 如果 varFreight 的值为Null, 则以下表达式使用IIf函数返回字符串。

varResult = IIf(IsNull(varFreight), _
"No Freight Charge", varFreight)

在下一个示例中, 提供给Nz函数的可选参数提供在 varFreightNull时返回的字符串。

varResult = Nz(varFreight, "No Freight Charge")

查询示例

表达式

结果

从 ProductSales 中选择 "ProductID"、"NZ" (折扣、"无详细信息") 作为表达式2。

返回列表达式1中的 "ProductID", 计算字段 "折扣" 字段中的 "Null" 值, 并返回所有 Null 值的 "无可用详细信息" (返回非空值 as is)。

从 ProductSales 中选择 "ProductID"、"NZ" (折扣、"无详细信息") 作为 ReplaceNull。

返回列产品中的 "ProductID", 计算字段 "折扣" 字段中的 "Null" 值, 并返回所有 Null 值的 "无可用详细信息" (返回非 null 值 as is), 并在列 ReplaceNull 中显示。

VBA 示例

注意: 下面的示例演示了在 Visual Basic for Applications (VBA) 模块中使用此函数的示例。 有关使用 VBA 的详细信息, 请在 "搜索" 旁边的下拉列表中选择 "开发人员引用", 然后在搜索框中输入一个或多个字词。

下面的示例将计算窗体上的控件, 并根据控件的值返回两个字符串之一。 如果控件的值为Null, 则过程使用Nz函数将Null值转换为零长度字符串。

Public Sub CheckValue()
Dim frm As Form
Dim ctl As Control
Dim varResult As Variant
' Return Form object variable
' pointing to Orders form.
Set frm = Forms!Orders
' Return Control object variable
' pointing to ShipRegion.
Set ctl = frm!ShipRegion
' Choose result based on value of control.
varResult = IIf(Nz(ctl.Value) = vbNullString, _
"No value.", "Value is " & ctl.Value & ".")
' Display result.
MsgBox varResult, vbExclamation
End Sub

注意:  本页面是自动翻译的,可能包含语法错误或不准确之处。 我们的目的是使此内容能对你有所帮助。 能否告知我们此信息是否有所帮助? 下面是该参考内容的英文版

扩展你的 Office 技能
了解培训
抢先获得新功能
加入 Office 预览体验计划

此信息是否有帮助?

谢谢您的反馈!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×