var sqltext,ss,tt:string;
begin
sqltext:=query1.sql.text;
ss:='';
if checkbox1.checked then ss:=ss+checkbox1.caption+'='+edit1.text+' and ';
if checkbox2.checked then ss:=ss+checkbox2.caption+'='+edit2.text;
.
.
.
ss:=trim(ss);
tt:=copy(ss,length(ss)-3,3);
if pos('and',tt,[])>0 then ss:=copy(ss,1,length(ss)-3);
if pos('where',sqltext)>0 then sqltext:=sqltext+' and '+ss
else sqltext:=sqltext+' where '+ss;
query1.close;
query1.sql.clear;
query1.sql.add(sqltext);
query1.open;
end;
方法如下:
设定一个Query1,其SQL为:Select * from KCXX Where 1>0
设KCXX为你要检索的数据表,可设定一按钮在其Click事件中写如下代码:
Query1.Close;
While Query1.SQL.Count>1 do
Query1.SQL.Delete(1);
If CheckBox1.checked Then
Query1.SQL.Add('And 字段1='+#39+Edit1.Text+#39);
If CheckBox2.Checked Then
Query1.SQL.Add('And 字段2='+#39+Edit2.Text+#39);
.....同理
Query1.Open;
其中的比较方式可自已更换,若想用模糊查询,则可将‘=’换成Like