Funkcja Nz

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

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