Za pomocą funkcji Nz można zwrócić zero, ciąg znaków o zerowej długości (" ") lub inną określoną wartość, jeśli zmienna Wariant ma wartość Null. Funkcji tej możesz użyć na przykład w celu przekonwertowania wartości Null na inną wartość, aby uniknąć propagowania wartości Null w wyrażeniu
Składnia
Nz(wariant [, wartość_jeśli_null])
Składnia funkcji Nz zawiera następujące argumenty:
| Argument | Opis |
|---|---|
| wariant | Argument wymagany. Zmienna o typie danych Variant. |
| wartość_jeśli_null | Opcjonalna (chyba że funkcja została użyta w zapytaniu).
Wariant, który dostarcza wartość zwracaną, jeśli argument wariant ma wartość null. Argument ten pozwala zwrócić wartość inną niż zero lub inną niż ciąg znaków zerowej długości. Uwaga: Jeśli w wyrażeniu zapytania zostanie użyta funkcja Nz bez użycia argumentu wartość_jeśli_null , w polach zawierających wartości null zostanie zwrócony ciąg znaków o zerowej długości. |
Jeśli argument wariant ma wartość Null, funkcja Nz zwraca liczbę zero lub ciąg znaków o zerowej długości (a w przypadku użycia w wyrażeniu zapytania zawsze ciąg znaków o zerowej długości), w zależności od tego, czy kontekst wymaga wartości w postaci liczby czy ciągu znaków. W przypadku uwzględnienia opcjonalnego argumentu wartość_jeśli_null funkcja Nz zwróci wartość określoną przez ten argument, jeśli argument wariant ma wartość null. Funkcja NZ użyta w wyrażeniu zapytania powinna zawsze zawierać argument wartość_jeśli_null ,
Jeśli wartość argumentu wariant jest różna od Null, funkcja Nz zwraca wartość argumentu wariant.
Uwagi
Funkcja Nz jest przydatna w wyrażeniach, które mogą zawierać wartości Null. Aby wyrażenie zawsze zwracało inną wartość niż Null, nawet jeśli zawiera wartość Null, należy użyć funkcji Nz w celu zwrócenia zera, ciągu znaków o zerowej długości lub niestandardowej wartości zwracanej.
Na przykład wyrażenie 2 + varX zawsze zwraca wartość null , jeśli wariantvarX ma wartość null. Jednak zwraca 2 + Nz(varX) wartość 2.
Funkcji Nz często można używać zamiast funkcji IIf. Na przykład w poniższym kodzie w celu zwrócenia odpowiedniego wyniku potrzebne są dwa wyrażenia z funkcją IIf. Pierwsze wyrażenie zawierające funkcję IIf służy do sprawdzenia wartości zmiennej i przekonwertowania jej na zero, jeśli zmienna ma wartość Null.
varTemp = IIf(IsNull(varFreight), 0, varFreight)
varResult = IIf(varTemp > 50, "High", "Low")
W następnym przykładzie funkcja Nz zapewnia tę samą funkcjonalność, co pierwsze wyrażenie, jednak odpowiedni wynik jest uzyskiwany w jednym kroku, a nie w dwóch.
varResult = IIf(Nz(varFreight) > 50, "High", "Low")
W przypadku wprowadzenia wartości argumentu opcjonalnego wartość_jeśli_null ta wartość będzie zwracana, jeśli argument wariant będzie miał wartość Null. Podanie tego argumentu opcjonalnego pozwala uniknąć konieczności użycia wyrażenia zawierającego funkcję IIf. Na przykład w następującym wyrażeniu użyto funkcji IIf w celu zwrócenia określonego ciągu, jeśli wartość tego varFreight argumentu to Null.
varResult = IIf(IsNull(varFreight), _
"No Freight Charge", varFreight)
W następnym przykładzie argument opcjonalny użyty w funkcji Nz określa ciąg zwracany w przypadku varFreight wartości Null.
varResult = Nz(varFreight, "No Freight Charge")
Przykłady kwerend
| Wyrażenie | Rezultat |
|---|---|
| SELECT ProductID, NZ(Discount,"Brak dostępnych szczegółów") AS Wyr2 FROM ProductSales; | Zwraca wartość "ProductID" w kolumnie Expr1, oblicza wartości "Null" w polu "Discount" i zwraca "Brak dostępnych szczegółów" dla wszystkich wartości Null (zwraca wartości inne niż null w niezmienionej postaci). |
| SELECT ProductID, NZ(Discount,"Brak dostępnych szczegółów") AS ReplaceNull FROM ProductSales; | Zwraca wartość "ProductID" w kolumnie Product, oblicza wartości "Null" w polu "Discount" i zwraca "Brak dostępnych szczegółów" dla wszystkich wartości Null (zwraca wartości inne niż null w postaci, w jakiej są) i wyświetla w kolumnie ReplaceNull. |
Przykład kodu VBA
Uwaga
Poniższe przykłady przedstawiają sposób użycia tej funkcji w module języka Visual Basic for Applications (VBA). Aby uzyskać dodatkowe informacje na temat pracy w języku VBA, wybierz pozycję Dokumentacja dewelopera z listy rozwijanej obok przycisku Wyszukaj i wprowadź odpowiednie terminy w polu wyszukiwania.
W poniższym przykładzie sprawdzana jest kontrolka w formularzu, a na podstawie jej wartości jest zwracany jeden z dwóch ciągów. Jeśli kontrolka ma wartość Null, zastosowana funkcja Nz konwertuje wartość Null na ciąg znaków o zerowej długości.
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