Application.Nz 方法 (Access)

使用 Nz 函式可傳回零 (0) 、零長度字串 (「」) ,或 VariantNull時傳回另一個指定的值。 例如,您可以使用此函數將 Null 值轉換為其他值,防止它轉移到運算式。

語法

運算式Nz (ValueValueIfNull)

expression 代表 Application 物件的變數。

參數

名稱 必要/選用 資料類型 描述
必要 Variant 資料類型 Variant 的變數。
ValueIfNull 選用 Variant 選用。 Variant,如果 variant引數為Null,則提供要傳回的值。 此引數可讓您傳回零或零長度字串以外的值。

注意:如果您在查詢的運算式中使用 Nz 函數,而不使用 ValueIfNull 引數,則結果會是包含 Null 值之欄位中長度為零的字串。

傳回值

Variant

註解

如果 variant 引數的 ValueNullNz 函式會傳回未指派的 Variant,也就是特殊值 Empty。 在 VBA 中,評估時, Empty 會產生數位零或長度為零的字串,視內容是否表示 Value 應該是數位或字串而定。 例如:

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

在查詢運算式中使用時, Nz 會傳回類似的結果值。

如果包含選擇性的ValueIfNull引數,如果 variant 引數為Null則 Nz函式會傳回該引數所指定的值。

如果VariantValue不是NullNz函式會傳回VariantValue

Nz 函數對於可以包含 Null 值的運算式很有用。 若要強制運算式包含 Null 值時估算非 Null 值,請使用 Nz 函數傳回零、零長度字串或自訂傳回值。

例如,當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函式的選擇性引數會在 為NullvarFreight 提供要傳回的字串。

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 支援與意見反應