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 o typie danych 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 |
Wymagany. Zmienna, której typ danych to Wariant. |
wartość_jeśli_null |
Opcjonalna (chyba że funkcja została użyta w zapytaniu). Wariant stanowiący 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 funkcja Nz zostanie użyta w wyrażeniu w zapytaniu bez użycia argumentu wartość_jeśli_null, wyniki będą ciągami znaków zerowej długości w polach zawierających wartości Null. |
Jeśli argument wariant ma wartość Null, funkcja Nz zwróci 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 będzie miał wartość Null. W przypadku użycia w wyrażeniu zapytania funkcja Nz powinna zawsze uwzględniać argument wartość_jeśli_null.
Jeśli wartość argumentu wariant jest inna niż Null, funkcja Nz zwróci 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 zmienna WariantvarX ma wartość Null. Natomiast wyrażenie 2 + Nz(varX) zwróci 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 zmienna varFreight ma wartość 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, gdy zmienna varFreight ma wartość Null.
varResult = Nz(varFreight, "No Freight Charge")
Przykłady zapytań
Expression |
Wyniki |
SELECT ProductID, NZ(Discount,"No Detail Available") AS Expr2 FROM ProductSales; |
Zwraca wartość "ProductID" w kolumnie Wyr1, oblicza wartości "Null" w polu "Rabat" i zwraca wartość "Brak dostępnych szczegółów" dla wszystkich wartości Null (zwraca wartości inne niż null, tak jak jest). |
SELECT ProductID, NZ(Discount,"No Detail Available") AS ReplaceNull FROM ProductSales; |
Zwraca wartość "ProductID" w kolumnie Produkt, oblicza wartości "Null" w polu "Rabat" i zwraca wartość "Brak dostępnych szczegółów" dla wszystkich wartości Null (zwraca wartości inne niż null w niezmienionej postaci) i jest wyświetlana w kolumnie ReplaceNull. |
Przykład języka 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