你可以用 Nz 函式回傳零、零長度的字串 (“ ”) ,或在變體為 Null 時返回其他指定值。 例如,您可以使用這個函數將 Null 值轉換為其他值,並阻止其透過運算式傳播。
語法
紐西蘭 (變體 [, valueifnull ] )
Nz 函數語法具有下列引數:
| 引數 | 描述 |
|---|---|
| variant | 必要。 一個資料型別 為 Variant 的變數。 |
| valueifnull | 選用 (除非在查詢中使用)。 一個變 體 ,若變 體 參數為 Null,則提供一個要回傳的值。 這個引數可讓您傳回零或零長度字串以外的值。 註: 如果你在查詢的表達式中使用 Nz 函式,但未使用 valueifnull 參數,結果會是包含 null 值的欄位中長度為零的字串。 |
若變體參數的值為 Null,Nz 函式回傳數字為零或零長字串, (在查詢表達式) 中總是回傳零長字串,視上下文指示該值應為數字還是字串而定。 若包含可選的 valueifnull 參數,則 Nz 函式將回傳該參數指定的值,且變 體 參數為 Null。 在查詢表達式中使用時, NZ 函式應始終包含 valueifnull 參數,
如果 變異 的值不是 Null,則 Nz 函數會回傳變 異的值。
註解
Nz 函數適用於可能包括 Null 值的運算式。 若要強制將運算式評估為非 Null 值 (即使包含 Null 值),您可以使用 Nz 函數傳回零、零長度字串或自訂傳回值。
例如,當變體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 函數的運算式。 例如,以下表達式使用 IIf 函數回傳字串,若 的 varFreight 值為 Null。
varResult = IIf(IsNull(varFreight), _
"No Freight Charge", varFreight)
在下一個例子中,給 Nz 函式的可選參數會提供若 varFreight 為 Null 時要回傳的字串。
varResult = Nz(varFreight, "No Freight Charge")
查詢範例
| 運算式 | 結果 |
|---|---|
| SELECT ProductID,紐西蘭 (折扣,「無詳情可用」) 來源為 ProductSales 的 Expr2; | 在 Expr1 欄回傳「ProductID」,評估欄位「Discount」中的「Null」值,並對所有 Null 值回傳「無詳細資訊可用」 (回傳非 Null 值,) 。 |
| SELECT ProductID,紐西蘭 (折扣,「無詳情可用」) 作為 ReplaceNull 來自 ProductSales; | 在 Product 欄位回傳「ProductID」,在「Discount」欄位評估「Null」值,並對所有 Null 值回傳「無詳細資訊可用」 (非 Null 值則如) ,並顯示在 ReplaceNull 欄位。 |
VBA 範例
注意
下列範例示範如何在 Visual Basic for Applications (VBA) 模組中使用此函數。 如需使用 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