Einzelnen Beitrag anzeigen

Jack23

Registriert seit: 20. Sep 2007
215 Beiträge
 
#1

Datenbank Abfrage Mit String

  Alt 2. Okt 2007, 18:34
Datenbank: Access • Version: 2003 • Zugriff über: ADO
Hallo

Ich mache mit Checkboxen eine Datenbank abfrage. Die Chekcboxen werden in einem String zusammen gesetzt. Code steht unten. Nun wird genau das Abgefragt. Ich möchte es aber so haben.....hm ich weiß ich bin schlecht im erklären. Ich mache ein Beispiel:

Tabelle abc:
wert:
wert1 wert2 wert3 /datensatz1
wert5 wert6 wert9 /datensatz2
wert5 wert13 wert34 /datensatz3

Ok das ist meine Tabelle.

Also WHERE wert. Wenn wert = wert1 wert2 wert3 ist wird der erste Datensatz abgefragt.
Alle durch Leerzeichen getrennt.
Wenn wert = wert5 wert6 wert9 ist wird der zweite Datensatz abgefragt.

So nun möchte ich es aber so haben wenn alle check boxen angekreuzt sind. Das sind 1,2,3,5,6,7.

Dann sollen beide Datensätze abgefragt werden. So holt er aber keinen aus der Datenbank weil er keine Übereinstimmung findet. Den dritten Datensatz dürfte er aber dennoch nicht ausgeben weil 13 und 34 nicht ausgewählt sind.
Ich hoffe ihr versteht was ich meine. Unten steht der Code zur Ansicht.
Delphi-Quellcode:
//String initialisieren
  sText := '';
  //Anhand des Zustandes String zusammenbauen mit Leerzeichen als Trenner
  for i := Low(Boxes) to High(Boxes) do
    if Boxes[i].Checked then
      sText := sText + Boxes[i].Caption + #32;
  //letztes Leerzeichen löschen
  if Length(sText) > 0 then
    Delete(sText,Length(sText),1);
    with Query do
  begin
    Close;
    SQL.Text := 'SELECT * FROM abc WHERE wert=' + QuotedStr(sText);
    Open;
  Mit Zitat antworten Zitat