Abfrage in Datenbank funktioniert nicht

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

DrMartinus
*
Beiträge: 16
Registriert: Fr, 10.10.2003 16:27

Abfrage in Datenbank funktioniert nicht

Beitrag von DrMartinus »

Hallo,

bei mir gibt's ein merkwürdiges Phänomen (vielleicht auch nicht): OOo 3.1.1 (Build 9319). Ich habe eine Datenbank, in der ich eine Abfrage von einer Tabelle machen will. Die Tabelle enthält u.a. ein Zahlenfeld mit 4 Stellen. Dieses Zahlenfeld will ich abfragen und trage also in das Kriteriumfeld für diese Spalte z.B. 2010 ein (ohne alles). Wenn ich die Abfrage starte, werden aber alle Datensätze angezeigt, ganz gleich, was ich als Kriterium angegeben habe. Die einzigen Kriterien, die bisher funktioniert haben, waren "IST NICHT LEER" oder "IST LEER". Das hilft mir aber nicht wirklich weiter.

Weiß jemand, was da falsch sein kann?


Noch ein interessanter Nachtrag: ich habe eben in einigen Datensätzen in dieses Feld eine "1" eingetragen und dann als "Oder"-Kriterium auch eine 1 eingegeben. Nun werden merkwürdigerweise nur die Datensätze ausgegeben, die eine 1 in diesem Feld beinhalten. Das Kriterium "2010" wird weiterhin ignoriert.
DrMartinus
*
Beiträge: 16
Registriert: Fr, 10.10.2003 16:27

Re: Abfrage in Datenbank funktioniert nicht

Beitrag von DrMartinus »

Habe die Lösung gefunden. Das Problem lag vor allem darin, dass ich das GUI benutzt habe und nach Werten in zwei Feldern suchen ließ. Dadurch entstand eine sehr merkwürdige Abfrage, etwa so:

Code: Alles auswählen

Feld1 = 2010 AND Feld2=Leer OR Feld1 = 1 AND Feld2 = FALSCH
Das erscheint problematisch, weil keine Klammern gesetzt sind und vor allem die falschen Bedingungen durch das AND miteinander verknüpft werden. Richtig wäre gewesen (was ich dann in der SQL-Ansicht berichtigte):

Code: Alles auswählen

(Feld1 = 2010 OR Feld1 = 1) AND ( Feld2=Leer OR Feld2 = FALSCH )
Das funktioniert jetzt. Im GUI sieht es nun so aus, dass für jedes Feld das jeweilige Kriterium so eingegeben ist:
Feld1: (2010 OR 1)
Feld 2: (LEER OR FALSCH)

Jetzt funktioniert's richtig. Ich muss nur daran denken, den SQL-Code anzuschauen und zu bearbeiten.
Antworten