Application.Nz 方法 (Access)
使用 Nz 函式可傳回零 (0) 、零長度字串 (“”) ,或 Variant 為 Null 時傳回另一個指定的值。 例如,您可以使用此函數將 Null 值轉換為其他值,防止它轉移到運算式。
語法
表達式。Nz (Value、 ValueIfNull)
expression 代表 Application 物件的變數。
參數
名稱 | 必要/選用 | 資料類型 | 描述 |
---|---|---|---|
值 | 必要 | Variant | 數據類型為 Variant 的變數。 |
ValueIfNull | 選用 | Variant | 選用。
Variant,如果 variant 自變數為 Null,則提供要傳回的值。 此自變數可讓您傳回零或零長度字串以外的值。 注意:如果您在查詢的表達式中使用 Nz 函數,而不使用 ValueIfNull 自變數,則結果會是包含 Null 值之字段中長度為零的字串。 |
傳回值
Variant
註解
如果 variant 自變數的 Value 為 Null,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 函式會傳回該自變數所指定的值。
如果 Variant 的 Value 不是 Null,Nz 函式會傳回 Variant 的 Value。
Nz 函數對於可以包含 Null 值的運算式很有用。 若要強制運算式包含 Null 值時估算非 Null 值,請使用 Nz 函數傳回零、零長度字串或自訂傳回值。
例如,當 VariantvarX
為 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 的值,當 Value 為 Null 時,就會傳回該值。 只要包含此選擇性的引數,就不需要使用包含 IIf 函數的運算式。 例如,如果的值varFreight
為 Null,下列運算式會使用 IIf 函式傳回字串。
varResult = IIf(IsNull(varFreight), "No Freight Charge", varFreight)
在下一個範例中,提供給 Nz 函式的選擇性自變數會在 為 Null 時varFreight
提供要傳回的字串。
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 支援與意見反應。