Danke!
Ich habe nur ein Problem.
Ich kann den Code nicht in meinen einbauen. Ich weiß nicht so recht wie ich das umbauen soll.
Die Codestelle die ich benutze habe ich irgendwo aus diesem Forum. Weiß leider nicht mehr genau woher.
Das ist der Code:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
const InitialText = '
SELECT * FROM tabelle WHERE ';
var Boxes:
array[0..20]
of TCheckbox;
sText:
string;
i: integer;
s: TStrings
// hier habe ich es definiert
begin
Boxes[0] := wert1;
Boxes[1] := wert2;
Boxes[2] := wert3;
Boxes[3] := wert4;
.....
sText := InitialText;
for i := Low(Boxes)
to High(Boxes)
do
if Boxes[i].Checked
then
sText := sText + '
wert LIKE ' + QuotedStr('
%' + Boxes[i].
Name + '
%') +
'
AND ';
if Length(sText) > Length(InitialText)
then
begin
Delete(sText,Length(sText) - 4, Length(sText));
Query.SQL.Text := sText;
Query.Open;
end;
end;
So habe ich das jetzt gemacht:
Delphi-Quellcode:
sText := InitialText;
for i := 0
to Pred(MAX_BOXES)
do
s.Add(Format('
%s wert %s LIKE %s', [
IfThen(s.Count = 1, '
AND'),
IfThen(
not Boxes[i].Checked, '
NOT'),
QuotedStr('
%' + Boxes[i].
Name + '
%')
]));
sText := sText + s.Text;
s.Free;
if Length(sText) > Length(InitialText)
then
begin
Delete(sText,Length(sText) - 4, Length(sText));
Query.SQL.Text := sText;
Query.Open;
end;
end;
Hm ich glaube da habe ich einen kompletten Denkfehler drinn.
Ich glaube das geht so gar nicht.
Sorry ich hätte schon am Anfang den ganzen Code schreiben sollen.