Sie können die Nz-Funktion verwenden, um null, eine Leere Zeichenfolge (" ") oder einen anderen angegebenen Wert zurückzugeben, wenn ein Variant-Wert Null ist . Sie können diese Funktion beispielsweise verwenden, um einen NULL-Wert in einen anderen Wert zu konvertieren und zu verhindern, dass er über einen Ausdruck weitergegeben wird.
Syntax
Nz ( variant [, valueifnull ] )
Die Syntax der Nz-Funktion weist die folgenden Argumente auf:
Argument |
Beschreibung |
Variante |
Erforderlich. Eine Variable vom DatentypVariante. |
WertWennNull |
Optional (außer bei Verwendung in einer Abfrage). Ein Wert vom Typ Variante, der einen Wert liefert, der zurückgegeben wird, wenn das Argument Variante gleich Null ist. Mit diesem Argument können Sie einen anderen Wert als Null oder eine Zeichenfolge der Länge Null zurückgeben. Hinweis: Wenn Sie die Nz-Funktion in einem Ausdruck in einer Abfrage ohne das Argument WertWennNull verwenden, wird in den Feldern, die Nullwerte enthalten, als Ergebnis eine Zeichenfolge der Länge Null zurückgegeben. |
Wenn der Wert des Variant-ArgumentsNull ist, gibt die Nz-Funktion die Zahl 0 oder eine Zeichenfolge der Länge Null zurück (gibt bei Verwendung in einem Abfrageausdruck immer eine leere Zeichenfolge zurück), je nachdem, ob der Kontext angibt, dass der Wert eine Zahl oder eine Zeichenfolge sein soll. Wenn das optionale valueifnull-Argument enthalten ist, gibt die Nz-Funktion den von diesem Argument angegebenen Wert zurück, wenn das Variant-ArgumentNull ist. Bei Verwendung in einem Abfrageausdruck sollte die NZ-Funktion immer das Argument valueifnull enthalten.
Wenn der Wert von variant nicht Null ist, gibt die Nz-Funktion den Wert von variant zurück.
Hinweise
Die Nz-Funktion ist nützlich für Ausdrücke, die NULL-Werte enthalten können. Um zu erzwingen, dass ein Ausdruck zu einem Wert ungleich Null ausgewertet wird, auch wenn er einen Null-Wert enthält, verwenden Sie die Nz-Funktion , um null, eine Zeichenfolge der Länge Null oder einen benutzerdefinierten Rückgabewert zurückzugeben.
Beispielsweise gibt der Ausdruck 2 + varX immer einen Null-Wert zurück, wenn der Variant -varXNull ist. 2 + Nz(varX) gibt jedoch 2 zurück.
Sie können häufig die Nz-Funktion als Alternative zur IIf-Funktion verwenden. Im folgenden Code sind beispielsweise zwei Ausdrücke einschließlich der IIf-Funktion erforderlich, um das gewünschte Ergebnis zurückzugeben. Der erste Ausdruck einschließlich der IIf-Funktion wird verwendet, um den Wert einer Variablen zu überprüfen und ihn in null zu konvertieren, wenn er Null ist.
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 einem Anstatt in zwei Schritten 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 variantnull ist. Indem Sie dieses optionale Argument einschließen, können Sie möglicherweise die Verwendung eines Ausdrucks vermeiden, der die Funktion IIf 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, das für die Nz-Funktion bereitgestellt wird, die Zeichenfolge bereit, die zurückgegeben werden soll, wenn varFreightNull ist.
varResult = Nz(varFreight, "No Freight Charge")
Abfragebeispiele
Ausdruck |
Ergebnisse |
SELECT ProductID, NZ(Discount,"No Detail Available") AS Expr2 FROM ProductSales; |
Gibt "ProductID" in Spalte Expr1 zurück, wertet die "Null"-Werte im Feld "Discount" aus und gibt "No Details Available" für alle NULL-Werte zurück (gibt die Werte ungleich NULL unverändert zurück). |
SELECT ProductID, NZ(Discount,"No Detail Available") AS ReplaceNull FROM ProductSales; |
Gibt "ProductID" in der Spalte Product zurück, wertet die "Null"-Werte im Feld "Discount" und "No Details Available" für alle Null-Werte zurück (gibt die werte ungleich NULL zurück) und wird in der Spalte ReplaceNull angezeigt. |
VBA-Beispiel
Hinweis: Die folgenden Beispiele zeigen die Verwendung dieser Funktion in einem VBA-Modul (Visual Basic for Applications). Wenn Sie weitere Informationen zum Arbeiten mit VBA wünschen, wählen Sie Entwicklerreferenz in der Dropdownliste neben Suchen aus, und geben Sie einen oder mehrere Begriffe in das Suchfeld ein.
Im folgenden Beispiel wird ein Steuerelement in einem Formular ausgewertet und eine von zwei Zeichenfolgen basierend auf dem Wert des Steuerelements zurückgegeben. Wenn der Wert des Steuerelements Null ist, verwendet die Prozedur die Nz-Funktion , um einen Null-Wert in eine leere Zeichenfolge zu konvertieren.
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