VBA中的Nz 函数使用

概述

适用于:Access for Office 365 Access 2019 Access 2016 Access 2013 Access 2010 Access 2007
Nz函数 返回零长度字符串 (""),或另一个非Null的指定值。使用此函数以将Null值转换为另一个值。

语法

Nz ( variant [, valueifnull ] )
Nz 函数的语法有以下参数:

参数说明
Variant必需。可变的数据类型变量。
valueifnull可选(除非用于查询中)。如果变量参数为空,提供值的变量将被返回。此参数允许您返回非零值或零长度的字符串。注意: 如果在查询表达式中使用 Nz 函数而不使用 valueifnull 参数,那么在包含空值的字段中结果将是零长度字符串

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

进一步说明

Nz 函数对于可能包括 Null 值的表达式很有用。

要强制表达式计算出非 Null 值(即使它包含 Null 值),请使用 Nz 函数来返回零、零长度字符串或自定义返回值 。

例如,当 Variant varX 为 Null 时,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 提供一个值,则当 variant 为 Null 时将返回该值。 通过包括此可选参数,可以避免使用包含 IIf 函数的表达式。 例如,如果 varFreight 的值为 Null,下面的表达式将使用 IIf 函数返回一个字符串。

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

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

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

示例

注意: 下面的示例使用此函数是在 Visual Basic for Applications (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
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值