Funkcja Nz

Dotyczy
Access dla Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Funkcja Nz umożliwia zwrócenie zera, ciągu o zerowej długości (" " ) lub innej określonej wartości, gdy wartość typu wariant wynosi 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żeli_null ] )

Składnia funkcji Nz zawiera następujące argumenty:

Argument Opis
wariant Argument wymagany. Zmienna typu danych Wariant.
wartość_jeśli_null Opcjonalna (chyba że funkcja została użyta w zapytaniu). Wariant, który dostarcza wartość do zwrócenia, 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 zapytaniu użyjesz funkcji Nz w wyrażeniu bez użycia argumentu wartość_jeżeli_null , wyniki będą ciągiem o zerowej długości w polach zawierających wartości null.

Jeśli wartość argumentu wariant ma wartość Null, funkcja Nz zwraca liczbę zero lub ciąg znaków o zerowej długości (zawsze zwraca ciąg znaków o zerowej długości, gdy jest używany w wyrażeniu zapytania), w zależności od tego, czy kontekst wskazuje, że wartość powinna być liczbą, czy ciągiem. Jeśli zostanie uwzględniony opcjonalny argument wartość_jeżeli_null , funkcja Nz zwróci wartość określoną przez ten argument, jeśli argument wariant ma wartość Null. W przypadku użycia w wyrażeniu zapytania funkcja NZ zawsze powinna uwzględniać argument wartość_jeżeli_średnia ,

Jeśli wartość typu wariant nie ma wartości Null, funkcja Nz zwraca wartość wariantu.

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 , gdy argument wariantvarX ma wartość Null. Zwraca jednak 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 poniższe wyrażenie używa funkcji IIf w celu zwrócenia ciągu, jeśli wartość jest równa varFreightNull.

varResult = IIf(IsNull(varFreight), _
    "No Freight Charge", varFreight)

W następnym przykładzie argument opcjonalny podany w funkcji Nz udostępnia ciąg, który ma zostać zwrócony, jeśli varFreight ma wartość Null.

varResult = Nz(varFreight, "No Freight Charge")

Przykłady zapytań

Wyrażenie Rezultat
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