Office: leeres ADO Recordset Field, nur mit isNull erkennbar?

Helfe beim Thema leeres ADO Recordset Field, nur mit isNull erkennbar? in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Wie kommt es', dass ein 'leeres' Feld in einem Recordset, nur mit dieser Variant erkannt werden kann es hilft kein Len, kein len(Trim, kein = Null,... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von TykaAndreas, 1. Juni 2008.

  1. leeres ADO Recordset Field, nur mit isNull erkennbar?


    Wie kommt es', dass ein 'leeres' Feld in einem Recordset, nur mit dieser Variant erkannt werden kann
    es hilft kein Len, kein len(Trim, kein = Null, kein Len(RsLoc.Fields(x))
    einzig wenn ich Schreibe:
    If IsNull(RsLoc("FiledX")) Then
    'mach was
    End If

    Die Tabelle gehört zu eienm Oracle Server

    Code:
    :)
     
    TykaAndreas, 1. Juni 2008
    #1
  2. Hallo!

    Nach meinem Verständnis ist "NULL" eher mit "ich weiß nicht" als mit "leer" gleichzusetzen. Versuche wie die "Länge" von "ich weiß nicht" zu ermitteln scheitern dementsprechend. IsNull ist die entsprechende Funktion, die eben jene Felder prüfen kann. Ergänzend dazu gibt es in Access noch die Funktion "NZ", die NULL-Werte durch andere Werte ersetzen kann. Mir (persönlich) reichte bis hier immer eine Prüfung mit eben jener "NZ"-Funktion.
    Code:
    NZ ersetzt also eventuelle NULL-Werte mit "" und gibt diesen ODER den im Datenfeld gespeicherten Wert, der NICHT NULL ist zurück. Mit der vorangestellten TRIM-Funktion kommt man ebenfalls auf "", wenn das Feld nur mit Leerzeichen gefüllt ist.

    Nachtrag:
    Mal schematisch, da die Erklärung irgendwie wurstig is. *wink.gif*
    Prüfung auf ""
    1. Datenfeld enthält "Musterstr." -> NZ liefert "Musterstr." -> Trim liefert "Musterstr." ---> False
    2. Datenfeld enthält NULL ->NZ liefert "" -> Trim liefert "" ---> True
    3. Datenfeld enthält "" (ohne Leerzeichen) -> NZ liefert "" -> Trim liefert ->"" ---> True
    4. Datenfeld enthält " " (mit drei Leerzeichen) -> NZ liefert " " -> Trim liefert -> "" ---> True
     
    bofspb, 3. Juni 2008
    #2
  3. Zur Ergänzung: NULL könnte man als Äquivalent zu dem bei Objektvariablen bekannten Zustand NOTHING sehen.

    Null/Nothing = "nicht initialisiert"
     
    Anne Berg, 4. Juni 2008
    #3
  4. leeres ADO Recordset Field, nur mit isNull erkennbar?

    Man kann sich nicht immer sicher sein bei der Prüfung auf NULL, das hängt auch vom Client ab, mit dem die Daten bearbeitet werden.

    Beispiel MySQL-Server, Tabelle mit einer Spalte "Test", VARCHAR
    In dieser Spalte gibt's mal Feldinhalte, mal keine Inhalte.

    Wenn man diese Tabelle z. B. in Access verknüpft hat und in besagter Spalte Inhalte manuell löscht, dann schreibt Access NULL zurück, sodaß eine Prüfung auf
    If IsNull(RS.Fields("Test") then . . .
    die DS zurückliefert, die man auf diese Weise in der Datenpflege eben auf NULL gebracht hat (durch Entfernen des Inhaltes). Ich kenne aber mind. einen Client - das ist der MySQLAdministrator himself -, der bei manueller Löschung nicht NULL, sondern "" zurückschreibt.

    Wenn man also das Löschen von Feldinhalten mal in Access, mal z. B. mit dem MySQL-Tool macht, hat man einen schönen Mischmasch aus NULL und "".

    Und wenn man sich nun drauf verläßt, daß die Prüfung in einem ADODB.Recordset auf IsNull das gewünschte Ergebnis bringt, dann Gute Nacht, denn da hilft wirklich nur
    If IsNull(RS.Fields("test")) OR RS.Fields("test") = "" then . . .

    Der Einfachheit halber also stets die NZ-Funktion benutzen, wie es ja bereits weiter oben geschrieben wurde.

    Gruß
    Stephan
     
  5. Tach,
    doe Excelplazierung war kein Versehen, und da gibt es kein NZ



    [Edit] Mof-Team AD: Bevor sich jemand hier aufregt: Das Thema wurde aus dem Excel-Bereich ins Access-Forum verschoben. Der zuständige Moderator hat allerdings vergessen, im ersten Beitrag einen Hinweis zu setzen. [/Edit]
     
    TykaAndreas, 4. Juni 2008
    #5
  6. Na macht ja nix. Die Frage bezog sich ja auch eher auf das "Warum", das is ja ausführlich abgearbeitet worden. *wink.gif* Ohne NZ musst Du halt "zu Fuß" dorthin, wie Stephan schon anmerkte(nur erweitert um das TRIM falls Leerzeichen im Feld stehen):

    Code:
     
    bofspb, 4. Juni 2008
    #6
Thema:

leeres ADO Recordset Field, nur mit isNull erkennbar?

Die Seite wird geladen...
  1. leeres ADO Recordset Field, nur mit isNull erkennbar? - Similar Threads - leeres ADO Recordset

  2. leere Zelle in Zeile finden

    in Microsoft Excel Hilfe
    leere Zelle in Zeile finden: Hallo Liebe Excel Profis, ich bin noch recht unbedarft was VBA angeht. Man kopiert und liest und bastelt und versucht alles zu verstehen. Aber irgendwann kommt man nicht weiter. Ich habe eine...
  3. VBA: Platzhalter ersetzen und evtl. leere Zeile einfügen

    in Microsoft Word Hilfe
    VBA: Platzhalter ersetzen und evtl. leere Zeile einfügen: Hallo zusammen, ich habe eine Word-Vorlage mit Platzhaltern, in die ich mit VBA Daten aus einer Excel-Datei einfüge (in eine Excel-Zeile schreibe ich alle Daten für ein neues Word-Dokument). So...
  4. Unterbericht erzeugt leere Seite

    in Microsoft Access Hilfe
    Unterbericht erzeugt leere Seite: Hallo zusammen, ich habe eine HauptBericht mit drei Unterberichten. Der Hauptbericht enthält den eindeutigen schlüssel mit Adressdaten im Gruppenkopf über den die Ureports verknüpft sein. Nicht...
  5. VBA Variableninhalt nach import aus zwei verschiedenen Dateien verschieden >Leer< und >""<

    in Microsoft Excel Hilfe
    VBA Variableninhalt nach import aus zwei verschiedenen Dateien verschieden >Leer< und >""<: Halle Excel Freaks, nach dem Import in eine Exelmappe aus einer anderen Mappe greife ich auf eine Zelle zu. In beiden Mappen steht in der Zelle nichts Beim Debuggen ist mir aufgefallen:...
  6. Zelle leer anzeigen, wenn Wert in der zelle nach dem Komma nicht 0 ist

    in Microsoft Excel Hilfe
    Zelle leer anzeigen, wenn Wert in der zelle nach dem Komma nicht 0 ist: Hallo zusammen, ich habe da mal wieder ne spezielle Frage. Ich habe eine Arbeitsmappe, in der ein Tabellenblatt die Information beinhaltet, wie gross eine VE ist. In dem anderen Tabellenblatt...
  7. VBA - letzte nicht-leere Spalte

    in Microsoft Excel Hilfe
    VBA - letzte nicht-leere Spalte: Moin, liebe VBA-Spezis, mit Cells(99, Columns.Count).End(xlToLeft).Column bestimme ich die Spaltenzahl der letzten benutzten Zelle in Zeile 99. Soweit, so klar. Nun habe ich aber Formeln in...
  8. Häufigste Wert/Text aus einer Spalte ermitteln ohne leere oder 0

    in Microsoft Excel Hilfe
    Häufigste Wert/Text aus einer Spalte ermitteln ohne leere oder 0: Hallo zusammen, versuche verzweifelt ein Lösung zu finden, wie ich die 0 ignorieren kann bei der Auswertung. Ich möchte die häufigste Wert/Text einer Spalte angezeigt bekommen. Problem sind die 0...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden