共用方式為


Application.Nz 方法 (Access)

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

語法

表達式Nz (ValueValueIfNull)

expression 代表 Application 物件的變數。

參數

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

注意:如果您在查詢的表達式中使用 Nz 函數,而不使用 ValueIfNull 自變數,則結果會是包含 Null 值之字段中長度為零的字串。

傳回值

Variant

註解

如果 variant 自變數的 ValueNull,Nz 函式會傳回未指派的 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 不是 Null,Nz 函式會傳回 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 支援與意見反應