Hallo Barlee, hat doch nicht geklappt!

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

hhbreth
***
Beiträge: 63
Registriert: So, 06.11.2005 21:47
Wohnort: Überlingen
Kontaktdaten:

Hallo Barlee, hat doch nicht geklappt!

Beitrag von hhbreth »

Hallo Barlee,
eben ist mir erst aufgefallen: die Abfrage bringt mir die komplette Liste und tut so, als gebe es das Kriterium nicht.

Wenn ich die Tabelle anzeigen lasse, dann ist in jedem Feld der Klassenspalte ein Quadrat. Nur in den Feldern, die ich im Formular angklickt habe, ist im Quadrat noch ein Haken. Kann es sein, dass die Abfrage das leere Quadrat als "not null" erkennt und deswegen alle Datensätze ausliest?
Wie kann man das verhindern?
Mit herzlichem Gruß
Hans-Heinrich
hhbreth
***
Beiträge: 63
Registriert: So, 06.11.2005 21:47
Wohnort: Überlingen
Kontaktdaten:

Beitrag von hhbreth »

Ich habe noch ein bisschen herumexperimentiert:

mit "where neun_b = 1" funktionierts!

Nochmals danke.
Mit herzlichem Gruß
Hans-Heinrich
Barlee
******
Beiträge: 767
Registriert: Sa, 17.12.2005 12:27

Beitrag von Barlee »

Hallo hhbreth,

schön, daß Du schon eine Lösung gefunden hast
Kann es sein, dass die Abfrage das leere Quadrat als "not null" erkennt und deswegen alle Datensätze ausliest?
Ja, denn wenn ein ja/nein Feld nicht angekreuzt ist, hat es den Wert 'false'. Und 'false' entspricht der Bedingung 'NOT NULL'. Daher kommen alle Daten zurück.

Desweiteren habe ich -nur nochmal als Info- gesehen, daß es anscheinend drei verschiedene Stati(bzw. Werte) für Ankreuzfelder in den Tabellen gibt. Zumindest wenn man versucht, die Häkchen direkt in der Tabelle (nicht über ein Formular) zu setzen.

Status1: Quadrat mit weißem Hintergrund (false bzw. 0)
Status2: Quadrat mit weißem Hintergrund und Häkchen (true bzw. 1)
Status3: Quadrat mit waagerechten Streifen (ähnlich einer Jalousie) -hat den Wert NULL und kommt denn zustande, wenn man in der Tabellendefinition den ja/nein Feldern keinen Default-Wert zuweist.

Abfrage für Status1: where neun_b = false bzw. where neun_b = 0
Abfrage für Status2: where neun_b = true bzw. where neun_b = 1
Abfrage für Status3: where neun_b is NULL

Hier wird nochmal o.a. Zusammenhang klar. Fragst Du nun nach NOT NULL ab, dann kommen die Felder mit true und false zurück

Ja/Nein Felder fragt man allerdings gewöhnlich mit "where neun_b = true bzw. false' oder -wie Du es richtig gemacht hast- mit 'where neun_b = 1 bzw. 0' ab

Vielleicht hilft Dir das ja für weitere Versuche. Viel Erfolg!

Gruß, Barlee
Antworten