PDA

Vollständige Version anzeigen : Umgang mit NULL


TommyK
12.03.2004, 13:11
Hallo,


Rudolf Lanz hat ein Tutorial zum Thema "Umgang mit NULL" verfasst.
Da dies eine tolle Arbeit ist, möchte ich es hier vorstellen.

Das gesamte Tutorial ist als PDF-Datei im Anhang + Bsp-Dateien für A97, A00 und A03.

Kurzübersicht des Inhaltes:

1. NULL ist nicht dasselbe wie null (0)

2. Mit Platzhalterzeichens (*), alle Werte ausser Null-Werte

3. Sortieren nach Feldern die Null-Werte und leere Zeichenfolgen enthalten

4. Felddefinitionen wechseln Resultat Feldinhalt ist NULL

5. Allgemeine Fehler mit Null
5.1 Nulls in den Kriterien
5.2 IsNull und Nz
5.3 Nulls in den Ausdrücken
5.4 Vergleichen etwas mit NULL
5.5 Null zu vergessen ist weder richtig noch falsch.
5.6 Nulls und nicht Variant Felder

6. Richtige Standardwerte verwenden

Ich denke das dieses Tutorial Vielen zur Probemlösung beiträgt. :top:

Download (127kb): Tutorial + Bsp-DB's (http://www.ms-office-forum.net/daten/access/03_2004/121545.zip)

Thomas Severa
24.01.2005, 14:15
danke tommyk

konnte das richtige für mich finden!

vielen dank
thomas

TommyK
24.01.2005, 14:23
Hallo Thomas,

ich bin der falsche Empfänger des Lobes.
Der Beitrag stammt von Rudolf Lanz, somit gilt auch Ihm das Lob.
Ich hab ihn nur moderiert.

NiceNico
02.03.2005, 15:37
Danke hat mir auch gehilft :p :D

Nun kann ich mit NULL umgehen ;)

Gruß Nico

Lanz Rudolf
20.03.2006, 12:28
Im Anhang ist eine PDF-Datei mit einer Beschreibung zum "Umgang mit NULL in Access"
mit folgenden Abschnitten:

1 NULL ist nicht dasselbe wie null (0).
2 Allgemeine Fehler mit NULL
2.1 Mit Platzhalterzeichen (*), alle Werte ausser NULL-Werte
2.2 Sortieren nach Feldern die NULL-Werte und leere Zeichenfolgen enthalten
2.3 Felddefinitionen wechseln Resultat Feldinhalt ist NULL
2.4 NULL’s in den Kriterien
2.5 IsNull und Nz
2.6 NULL’s in den Ausdrücken
2.7 Ja/Nein Felder abfragen
2.8 Vergleichen etwas mit NULL
2.9 NULL zu vergessen ist weder richtig noch falsch.
2.10 NULL’s und nicht Variant Felder
2.11 NULL’s als Parameter bei Sub und Functionen
2.12 Update/Erstellen Feld mit NULL in einer Tabelle
2.13 Etwas was man mit Nz nicht abfangen kann
2.14 Eingabe-Felder in einem Formular
2.15 NULL im Formular mit Filter
2.16 Abfrage mit Filter für Alle, mit NULL, Genau die oder die nach Platzhalter
3 Richtiger Standardwerte verwenden
4 VB Konstanten zu Null
5 Bezeichnungen in anderen Programmiersprachen
6 IsEmpty-Funktion
7 IsDate-Funktion
8 IsNumeric-Funktion[/QUOTE]

zaubereien
24.04.2006, 21:40
Gratuliere!

Lanz Rudolf
23.11.2007, 19:21
Hallo
bin daran eine Neue Version der Pdf-Datei "Umgang mit NULL" zu erstellen.
Hat noch jemend Fehler-korrekturen oder sonst vorschlähe welche ich auch gerade noch einbauen könnte.
Danke und

Josef P.
24.11.2007, 12:46
Ich überflog es jetzt nur kurz, dabei ist mir aber unter Punkt 2.8 (pdf-Version: 20.3.2006) etwas aufgefallen:
Verwenden Sie die IsNull() Funktion:
If IsNull([Familienname]) Then
oder eben beim vergleichen von Strings Nz
If Len(Nz([Familienname], "")) > 0 Then
dann sind auch Leerezeichenfolgen (also “ “) auch ausgeschlossen.
Hier wäre auch der Vergleich Len([Familienname]) > 0 möglich, da len(NULL) NULL liefert und das ist nicht > 0.
ich glaube aber, dass du statt dem > ein = schreiben wolltest.

In einem SQL WHERE (((Nz([Familienname],""))>"0"));
oder WHERE (((TblNULLTest2.Ort)=(TblNULLTest2.Ort) & ""));
die 0 ist vermtulich ein Tippfehler.

Noch etwas allg. zu SQL und NULL.
Ich würde Vergleiche wie where Nz([FELD],'') = '' nicht machen, sondern:
Where [FELD] IS NULL OR [FELD]='' ... damit kann ein Index genutzt werden. (Funktionen auf der Vergleichsseite der Bedingung führen sehr gerne zu einem Tablescan. "where [Feld] = ScalarfunctionMitKonstantenrückgabe()" ist keine Problem)
Der Vergleich [FELD] > '' passt meist, da man kaum nur die Leerstrings entfernen will. ansonsten auch hier: Where [FELD] IS NULL OR [FELD]>''

Lanz Rudolf
24.11.2007, 14:11
Hallo
und Danke vielmals für die Interessanten Hinweise
werden die Entsprechenden Stellen Prüfen, Korrigieren, Ergänzen, Ersetzen.
Noch einmal Danke

Lanz Rudolf
02.06.2009, 18:20
Hallo
lade die neuste Version

RS
03.06.2009, 13:51
Fühle mich jetzt als NULL :mrcool:

Rudolf

Lanz Rudolf
06.06.2009, 21:33
Hallo
@Rudolf (RS) mein Vornamens-fetter ;)

sicher nicht nötig,
oder hast Du nichts Verstanden oder ist es so unverstäntlich geschrieben ?
hast Du korrektur vorschläge ?

RS
07.06.2009, 11:24
MIT DEM NULL-PROBLEM IMMER MEINE PROBLEME -> if ISNULL(.... usw).
Dein Anhang ist sicher verständlich. Aber da in diversen Büchern bzw. in der Hilfe das Thema oft nach meiner Meinung nicht "Ausführlich" beschrieben stand oder steht (auch bei anderen Themen), sind (Ausführliche) Informationen wie Du Sie angefügt hat ideal.

Ein wunderbares anderes Beispiel ist das Arbeitsgruppen-Problem, welches man noch unter 2003 verwenden konnte (Ohne Probleme). Jedoch in 2007 gibt es eine Möglichkeit, die DB mit einer Arbeitsgruppe noch zu starten, aber bis ich die Lösung fand dauerte es.

Viele Privatanwender nutzen Access um damit diverse Daten zu sammeln und zu pflegen (Egal ob Verein oder Sammler). Mit der Zeit wird natürlich der Drang nach besseren Lösungen im Code im grösser. Ich merke es oft, wenn wir in Wien den Access-Stammtisch 1x pro Monat machen. Immer wieder wird das Problem einer besseren "Dokumentation" bzw. "Hilfe" angesprochen. Bei Stammtisch sitzen zum Glück Access-Trainer & Entwickler die dann mit Rat und Tat zur Verfügung stehen.

In diesem Sinne war Deinerseits alles korrekt.
Grüsse in die Schweiz aus Wien :hands:

Rudolf

schnattielein
11.11.2010, 15:32
vielen Dank Rudolf ...

sehr hilfreich; aufschlußreich.

Hat mir persönlich auch geholfen, um nachzuvollziegen, wie sich manche Mothoden, die scheinbar zum gleichen Ziel führen, unterscheiden :)

kleiner Vorschlag:
Füge doch in deine Doku noch ne Fußzeile "Stand vom xxxxx" oder so ähnlich ein. Dann weiß man, wenn man es in die Finger bekommt, von wann es ist :)

Ich persönlich habe nämlich schon verschiedene Versionen dieses Dokuments in den Händen gehabt und hatte Schwierigkeiten, zu unterscheiden, welche veraltet war ...
Auf diesen Tread bin ich erst später gestoßen und fand hier in #10 auch eine aktuelle Version.
Wobei ich frage mich noch, ob die Version aus deiner Signatur vielleicht noch aktueller ist :p ;)


viele Grüße Anja

Lanz Rudolf
11.11.2010, 16:50
Hallo
@ Anja
Danke für den Hinweis :hands:
werde sehen was ich machen kann ;)

schnattielein
11.11.2010, 17:05
ok ;)

geb mir noch deine Empfehlung: Version aus #10 oder lieber die aus deiner Signatur??

LG Anja

Lanz Rudolf
11.11.2010, 17:10
Hallo
Version aus #10

schnattielein
11.11.2010, 17:18
ok, hab ich gespeichert :)

Danke! Tolle Arbeit!!!

LG Anja