我想在查询中实现组合查询:有员工编号edit1,姓名:edit2,部门:combobox1等,有个button1,有个dbgrid1,实现查询,edit1,edit2,combobox1,以上全选,或者,选几个,都能实现查询??
代码该怎么写,,假如ado是:adoquery1,datasource1,
我是这样写的,buttononclick事件;
var str:string;
begin
str:='select * from adoquery1 where ';
if edit1.text<>'' then
begin
str:=str+' ygbh=edit1.text ';
end;
if edit2.text <>'' then
begin
str :=str+' xm =edit2.text';
end;
if combobox1.text <> '' then
begin
str :=str+' bm= combobox1.text ';
end;
with adoquery1 do
close;
sql.clear;
sql.add(str);
open;
end;我知道以上这样写不对,,会错,,我只想,大虾们,,教小第,以上的功能该怎么实现!!谢谢!!
代码该怎么写,,假如ado是:adoquery1,datasource1,
我是这样写的,buttononclick事件;
var str:string;
begin
str:='select * from adoquery1 where ';
if edit1.text<>'' then
begin
str:=str+' ygbh=edit1.text ';
end;
if edit2.text <>'' then
begin
str :=str+' xm =edit2.text';
end;
if combobox1.text <> '' then
begin
str :=str+' bm= combobox1.text ';
end;
with adoquery1 do
close;
sql.clear;
sql.add(str);
open;
end;我知道以上这样写不对,,会错,,我只想,大虾们,,教小第,以上的功能该怎么实现!!谢谢!!
begin
str:='select * from adoquery1 where ';
if edit1.text<>'' then
begin
str:=str+' ygbh='+Quotedstr(edit1.text)+' AND ';
end;
if edit2.text <>'' then
begin
str :=str+' xm='+Quotedstr(edit2.text)+' AND ';
end;
if combobox1.text <> '' then
begin
str :=str+' bm='+Quotedstr(combobox1.text)+' AND ';
end;
str:=str+' 1=1' // 这里是防止你没有选择任意一个
with adoquery1 do
close;
sql.clear;
sql.add(str);
open;
end;
这样就不会错了。
像你原来写的那样,第一个条件就是必选的。如果加个1=1,每个条件都是可选的。
如果你不要 1=1 那你前面就必须有一个要选,否则就有错