Application.Nz-Methode (Access)

Verwenden Sie die Nz-Funktion, um null (0), eine leere Zeichenfolge ("") oder einen anderen angegebenen Wert zurückzugeben, wenn ein Variant-Wert Null ist. Sie können diese Funktion z. B. verwenden, um einen Wert Null in einen anderen Wert zu konvertieren und so zu verhindern, dass der Wert durch einen Ausdruck verbreitet wird.

Syntax

Ausdruck. Nz (Value, ValueIfNull)

expression Eine Variable, die ein Application-Objekt darstellt.

Parameter

Name Erforderlich/Optional Datentyp Beschreibung
Wert Erforderlich Variant Eine Variable des Datentyps Variant.
ValueIfNull Optional Variante Optional. Eine Variante, die einen Wert liefert, der zurückgegeben werden soll, wenn das Variantenargument Null ist. Mithilfe dieses Arguments können Sie einen anderen Wert als 0 oder eine Zeichenfolge der Länge 0 zurückgeben.

HINWEIS: Wenn Sie die Nz-Funktion in einem Ausdruck in einer Abfrage verwenden, ohne das Argument ValueIfNull zu verwenden, sind die Ergebnisse eine leere Zeichenfolge in den Feldern, die Null-Werte enthalten.

Rückgabewert

Variant

Bemerkungen

Wenn der Wert des Variant-Arguments Null ist, gibt die Nz-Funktion einen nicht zugewiesenen Variant-Wert zurück, den speziellen Wert Empty. In VBA führt Empty bei der Auswertung entweder zu der Zahl 0 oder einer Zeichenfolge der Länge Null, je nachdem, ob der Kontext angibt, dass der Wert eine Zahl oder eine Zeichenfolge sein soll. Beispiel:

Nz(Null) + 2    ' returns 2
Nz(Null) & 2    ' returns "2"
Nz(Null) + "2"  ' returns "2"
Nz(Null) & "2"  ' returns "2"

Bei Verwendung in einem Abfrageausdruck gibt Nz ähnliche Ergebniswerte zurück.

Wenn das optionale ValueIfNull-Argument enthalten ist, gibt die Nz-Funktion den von diesem Argument angegebenen Wert zurück, wenn das Variant-Argument Null ist.

Wenn der Wert von Variant nicht Null ist, gibt die Nz-Funktion den Wert von Variant zurück.

Die Nz-Funktion ist für Ausdrücke sinnvoll, die Null-Werte enthalten können. Damit ein Ausdruck einen Wert liefert, der ungleich Null ist, auch wenn er einen Null-Wert enthält, verwenden Sie die Nz-Funktion, um eine Null, eine leere Zeichenfolge oder einen benutzerdefinierten Rückgabewert zurückzugeben.

Beispielsweise gibt der Ausdruck 2 + varX immer einen Null-Wert zurück, wenn VariantvarXnull ist. However, 2 + Nz(varX) returns 2.

Sie können häufig die Nz-Funktion als Alternative zur IIf-Funktion verwenden. So sind z. B. im folgenden Code zwei jeweils mit der IIf-Funktion formulierte Ausdrücke erforderlich, um das gewünschte Ergebnis zurückzugeben. Der erste Ausdruck mit der IIf-Funktion wird verwendet, um den Wert einer Variable zu überprüfen und, sofern dieser gleich Null ist, in 0 umzuwandeln.

varTemp = IIf(IsNull(varFreight), 0, varFreight) 
varResult = IIf(varTemp > 50, "High", "Low")

Im nächsten Beispiel bietet die Nz-Funktion die gleiche Funktionalität wie der erste Ausdruck, und das gewünschte Ergebnis wird in einer Zeile statt in zwei Zeilen erreicht.

varResult = IIf(Nz(varFreight) > 50, "High", "Low")

Wenn Sie einen Wert für das optionale Argument ValueIfNull angeben, wird dieser Wert zurückgegeben, wenn Valuenull ist. Durch Verwendung dieses optionalen Arguments können Sie eventuell darauf verzichten, einen Ausdruck zu verwenden, der die IIf-Funktion enthält. Der folgende Ausdruck verwendet beispielsweise die IIf-Funktion , um eine Zeichenfolge zurückzugeben, wenn der Wert von varFreightNull ist.

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

Im nächsten Beispiel stellt das optionale Argument für die Nz-Funktion die zurückzugebende Zeichenfolge bereit, wenn varFreightnull ist.

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

Beispiel

Das folgende Beispiel wertet ein Steuerelement eines Formulars aus und gibt eine von zwei Zeichenfolgen zurück, basierend auf dem Wert des Steuerelements. Wenn der Wert des Steuerelements Null ist, verwendet die Prozedur die IsNull-Funktion , um die Nachricht auszuwählen, und die Nz-Funktion , um einen Null-Wert durch eine Nachricht zu ersetzen.

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 using IsNull.
    varResult = IIf(IsNull(ctl.Value), _ 
        "No value.", "Value is " & ctl.Value & ".") 
 
    ' Display result using IsNull. 
    MsgBox varResult, vbExclamation, "Using IsNull" 

    ' Choose result based on value of control using Nz. 
    ' "Value is" + Str(Null) evaluates to Null.
    varResult = Nz("Value is" + Str(ctl.Value), "No value") & ".") 
 
    ' Display result using Nz. 
    MsgBox varResult, vbExclamation, "Using Nz"
 
End Sub

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.