Nz 函數(shù)

此頁沒有內(nèi)容條目
內(nèi)容

expandtri全部顯示

當(dāng)一個 VariantNull 時,使用 Nz 函數(shù)可以返回 0、零長度字符串 (" ") 或其他指定值。例如,可以使用該函數(shù)將 Null 值轉(zhuǎn)換為其他值并防止它通過表達(dá)式擴(kuò)散。

Nz(variant, [valueifnull])

Nz 函數(shù)具有以下參數(shù):

參數(shù)

說明

variant

數(shù)據(jù)類型Variant 的變量。

Valueifnull

可選參數(shù)(除非在查詢中使用)。一個 Variant,提供當(dāng) variant 參數(shù)為 Null 時的返回值。該參數(shù)使您能夠返回一個除 0 或零長度字符串以外的其他值。

注釋  如果在查詢的表達(dá)式中使用不帶 ValueIfNull 參數(shù)的 Nz 函數(shù),則對包含空值的字段,其返回結(jié)果為零長度字符串。

 

如果 variant 參數(shù)的值為 Null,Nz 函數(shù)將返回零或零長度字符串(當(dāng)用在查詢表達(dá)式中時,總是返回零長度字符串),這取決于上下文表明該值是數(shù)值還是字符串。如果包含了可選 valueifnull 參數(shù),則當(dāng) variant 參數(shù)為 Null 時,Nz 函數(shù)將返回由該參數(shù)指定的值。當(dāng)在查詢表達(dá)式中使用時,NZ 函數(shù)總是包含 valueifnull 參數(shù)。

如果 variant 的值不為 Null,則 Nz 函數(shù)返回 variant 的值。

說明

Nz 函數(shù)對可能包含 Null 值的表達(dá)式是很有用的。要使表達(dá)式即使在包含 Null 值時也能計算得到一個非 Null 值,可使用 Nz 函數(shù)來返回 0、零長度字符串或一個自定義的返回值。

例如,表達(dá)式 2 + varXVariant varXNull 時總是返回 Null 值。而 2 + Nz(varX) 卻返回 2。

可以經(jīng)常使用 Nz 函數(shù)作為 IIf 函數(shù)的替代函數(shù)。例如,在下面的代碼中,需要用兩個包含 IIf 函數(shù)的表達(dá)式來返回所需的結(jié)果。第一個包含 IIf 函數(shù)的表達(dá)式用于檢查變量的值,并且如果該值為 Null,則將其轉(zhuǎn)換為零。

varTemp = IIf(IsNull(varFreight), 0, varFreight)

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

在下一個示例中,Nz 函數(shù)提供與第一個表達(dá)式相同的功能,并且一步即可獲得所需的值而不需要分兩步進(jìn)行。

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

如果為可選參數(shù) valueifnul 提供了一個值,則當(dāng) variant 為 Null 時,將返回該值。通過包含該可選參數(shù),可以避免使用含有 IIf 函數(shù)的表達(dá)式。例如,下面的表達(dá)式使用 IIf 函數(shù),在 varFreight 的值為 Null 時返回一個字符串。

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

在下一個示例中,為 Nz 函數(shù)提供的可選參數(shù)提供在 varFreightNull 時返回的字符串。

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

示例

下面的示例對窗體上的一個控件進(jìn)行計算,并根據(jù)控件值返回兩個字符串之一。如果控件值為 Null,過程就會使用 Nz 函數(shù)將 Null 值轉(zhuǎn)換為零長度字符串。

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