我有一个 adotable,我想从多个组合框应用多个过滤器,每个组合框都将一个过滤器应用于该表。我的问题是,每当我从组合框 1 中选择一个项目时,它都会应用其过滤器,但是当我从下一个组合框(组合框 2)中选择另一个项目时,它会删除前一个过滤器(组合框 1)并应用组合框 2 中的过滤器。我的问题是:如何使 adotable 保留来自 combobox1 或 combobox2 甚至两者的先前过滤器,但还添加来自 combobox3 的第三个过滤器以进行更深入的排序?提前致谢。这是我到目前为止所做的:
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
ADOTable1.Filtered:=false;
ADOTable1.filter:='`enter code here`field1='+ QuotedStr(ComboBox1.Text);
ADOTable1.Filtered:=true;
end;
procedure TForm1.ComboBox2Change(Sender: TObject);
begin
ADOTable1.Filtered:=false;
ADOTable1.filter:=adotable1.Filter+'and field2='+ QuotedStr(ComboBox1.Text);
ADOTable1.Filtered:=true;
end;
procedure TForm1.ComboBox3Change(Sender: TObject);
begin
ADOTable1.Filtered:=false;
ADOTable1.filter:=adotable1.Filter+'and field3='+ QuotedStr(ComboBox1.Text);
ADOTable1.Filtered:=true;
end;