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;