Application.Nz 方法 (Access)

使用 Nz 函数可返回零 (0) 、零长度字符串 (“”) ,或者 当 VariantNull 时返回另一个指定值。 例如,您可以使用该函数将 Null 值转换为其他值,以避免该值在表达式中传播。

语法

表达式Nz (ValueValueIfNull)

expression:表示 Application 对象的变量。

参数

名称 必需/可选 数据类型 说明
必需 Variant 数据类型 为 Variant 的变量。
ValueIfNull 可选 Variant 可选。 一个 Variant 类型的值,在变量参数为 Null 时提供要返回的值。 使用此参数可以返回除零或零长度字符串以外的值。

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

返回值

Variant

备注

如果 variant 参数的 ValueNull,则 Nz 函数返回一个未分配 的 Variant,即特殊值 Empty。 在 VBA 中,当计算时, 将产生数字 0 或零长度字符串,具体取决于上下文指示 Value 应是数字还是字符串。 例如:

Nz(Null) + 2    ' returns 2
Nz(Null) & 2    ' returns "2"
Nz(Null) + "2"  ' returns "2"
Nz(Null) & "2"  ' returns "2"

在查询表达式中使用时, Nz 将返回类似的结果值。

如果包含可选的 ValueIfNull 参数,则当变量参数为 Null 时,Nz 函数将返回该参数指定的值。

如果 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 提供值,则当 ValueNull 时,将返回该值。 通过包含该可选参数,可以避免使用含有 IIf 函数的表达式。 例如,如果 的值为 varFreightNull,则以下表达式使用 IIf 函数返回字符串。

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

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

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

示例

下面的示例对窗体上的一个控件进行计算,并根据控件值返回两个字符串之一。 如果控件的值为 Null,则过程使用 IsNull 函数来选择消息,然后 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 using IsNull.
    varResult = IIf(IsNull(ctl.Value), _ 
        "No value.", "Value is " & ctl.Value & ".") 
 
    ' Display result using IsNull. 
    MsgBox varResult, vbExclamation, "Using IsNull" 

    ' Choose result based on value of control using Nz. 
    ' "Value is" + Str(Null) evaluates to Null.
    varResult = Nz("Value is" + Str(ctl.Value), "No value") & ".") 
 
    ' Display result using Nz. 
    MsgBox varResult, vbExclamation, "Using Nz"
 
End Sub

支持和反馈

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。