您的位置:首页 > 编程语言 > VB

VBA中的Nz 函数使用

2020-02-16 16:19 651 查看

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
  • 点赞
  • 收藏
  • 分享
  • 文章举报
keenrob 发布了3 篇原创文章 · 获赞 0 · 访问量 474 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: