Access VBA教程:Nz函数

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

Nz(variant, [valueifnull])

Nz函数具有以下参数:

参数 说明
variant 数据类型为 Variant 的变量。
Valueifnull 可选参数(除非在查询中使用)。一个 Variant,提供当 variant参数为 Null 时的返回值。该参数使您能够返回一个除 0 或零长度字符串以外的其他值。

注意   如果在查询的表达式中使用不带 ValueIfNull参数的 Nz函数,则对包含空值的字段,其返回结果为零长度字符串。


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

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

说明

Nz函数对可能包含 Null 值的表达式是很有用的。要使表达式即使在包含 Null 值时也能计算得到一个非 Null 值,可使用 Nz函数来返回 0、零长度字符串或一个自定义的返回值。

例如,表达式2 + varX 在 VariantvarX 为 Null 时总是返回 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")

如果为可选参数 valueifnul 提供了一个值,则当 variant 为 Null 时,将返回该值。通过包含该可选参数,可以避免使用含有 IIf函数的表达式。例如,下面的表达式使用 IIf函数,在varFreight 的值为 Null 时返回一个字符串。


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

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


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

示例

下面的示例对窗体上的一个控件进行计算,并根据控件值返回两个字符串之一。如果控件值为 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

上页:Access VBA教程:LoadPicture方法 下页:Access VBA教程:StringFromGUID函数

Access VBA教程:Nz函数

Access VBA教程:StringFromGUID函数 Access VBA教程:隐藏的语言元素
Access VBA教程:在子窗体或子报表中调用过程 Access VBA教程:将 DAO 代码转换为 ADO
Access VBA教程:将 Microsoft Access 用作 DDE 服务器 Access VBA教程:错误捕获
Access VBA教程:在域聚合函数中计算字段 Access VBA教程:在 SQL 语句中使用国际日期格式
Access VBA教程:运行时错误处理的元素 Access VBA教程:设置数据访问页和控件属性
Access VBA教程:设置窗体、报表和控件的属性 Access VBA教程:在代码中设置启动属性和选项
Access VBA教程:在 Visual Basic 中设置数据访问页属性 Access VBA教程:在 Visual Basic 中设置窗体、报表和控件属性
Access VBA教程:从 Visual Basic 中设置选项 Access VBA教程:在 Visual Basic 中设置 ActiveX 数据对象的属性
Access VBA教程:在 Visual Basic 中设置数据访问对象的属性 Access VBA教程:用 Visual Basic 设置属性
Access VBA教程:用宏设置属性 Access VBA教程:从 Visual Basic 中设置启动属性
版权所有 © 中山市飞娥软件工作室 证书:粤ICP备09170368号