2016-12-21 3 views

Antwort

5

NULL ist das Fehlen eines Wertes *

"" ist eine Zeichenfolge der Länge Null

Durch implizite Konvertierung - ein Objekt, das für bisher noch nicht Macht return true beiden Fällen besiedelt . Allerdings, wenn Sie dort einen Wert von "" zu setzen, wäre es falsch zurückgeben für isnull() und True für = ""

* Credit Comintern für die Erklärung zu verbessern (siehe Kommentare)

+0

Es mag genauer sein, zu sagen, dass null das Fehlen von Wert ist, um es mit 'Nothing' zu verwechseln.' IsNull (Nothing) 'ergibt false, weil' Nothing' eine Objektreferenz ist. – Comintern

+0

@Comintern guter Punkt, ich werde meine Antwort aktualisieren –

+0

Und Sie vergaßen _Empty_ – Gustav

-1

isnull bedeutet, dass der Wert nicht während bearbeiten bekannt ist:"" bedeutet, es ist NULL-Zeichenfolge *


* Credit: @Macro Man.

+4

_Empty_ ist sehr verschieden von "". – Gustav

+0

Korrekt. mein Fehler. (Obwohl ich sehe, dass dies ein übliches Missverständnis ist, da ich jetzt bemerkte, dass auch @Erik von Asmuth dies beantwortete, ist "" eine leere Zeichenfolge. " (Obwohl ich seine Idee mag,' If nz ([variable], "") = "" Dann ") [ich bin ziemlich neu hier - soll ich bearbeiten, was ich schrieb?] –

+1

Ja, die Nz-Methode scheint unschlagbar. Wenn Sie Ihre Antwort bearbeiten können, gehen Sie einfach weiter. Frohe Weihnachten – Gustav

2

sagte Wie die anderen antworten, null ist nichts, "" ist eine leere Zeichenfolge.

für Um zu testen, sowohl für null und leere Variablen in Access VBA, verwenden Sie die folgenden Schritte aus:

If nz([variable], "") = "" Then do stuff 

Die nz Funktion null Variablen wandelt auf "" oder 0

3

Wenn Sie das tun, zu überprüfen, zu Marken Sinn x muss eine Variante sein, und Null ist nicht "Nichts". Nichts bedeutet leer und es existiert ein spezieller Check dafür. diese

Run und sehen:

Dim x As Variant 

Debug.Print IsEmpty(x) ' True 
Debug.Print IsNull(x) ' False 
Debug.Print x = ""  ' True 
Debug.Print Nz(x) = "" ' True 

x = Null 
Debug.Print IsEmpty(x) ' False 
Debug.Print IsNull(x) ' True 
Debug.Print x = ""  ' Null 
Debug.Print Nz(x) = "" ' True 

x = "" 
Debug.Print IsEmpty(x) ' False 
Debug.Print IsNull(x) ' False 
Debug.Print x = ""  ' True 
Debug.Print Nz(x) = "" ' True 
+1

können Sie Ergebnisse als Kommentare rechts zu 'debug.print' Zeilen hinzufügen, um die Lesbarkeit zu verbessern ... –

+0

OK, nahm ein bisschen tippen ... – Gustav

+0

perfekt, +1 von mir bereits gewährt :) –

0

, wenn ich für eine null/leere Zeichenkette überprüfen möchten ich

If x & "" <> "" then 
Verwandte Themen