如何实现组合查询,,谢谢
我想在查询中实现组合查询:有员工编号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;
我知道以上这样写不对,,会错,,我只想,大虾们,,教小第,以上的功能该怎么实现!!谢谢!!
问题点数:20、回复次数:10Top
1 楼chb5210(沉默)回复于 2006-03-06 12:32:11 得分 20
var str:string;
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;
Top
2 楼chb5210(沉默)回复于 2006-03-06 12:33:22 得分 0
str:=str+' 1=1'; // 不好意思,少打了个分号Top
3 楼ykui(城市星空)回复于 2006-03-06 13:49:27 得分 0
str:=str+' 1=1'; 请问: 1=1 是什么意思啊,能具体点吗,,小第是菜鸟,知道的不是很多,谢谢!Top
4 楼Corn1(玉米)回复于 2006-03-06 13:54:02 得分 0
where 1=1 and 条件一 and 条件二……
这样就不会错了。
像你原来写的那样,第一个条件就是必选的。如果加个1=1,每个条件都是可选的。Top
5 楼chb5210(沉默)回复于 2006-03-06 13:55:45 得分 0
Corn1(玉米) ( )
就是他说的这个意思
如果你不要 1=1 那你前面就必须有一个要选,否则就有错Top
6 楼ykui(城市星空)回复于 2006-03-06 14:54:10 得分 0
Quotedstr() 这个是什么意思啊,谢谢了,Top
7 楼chb5210(沉默)回复于 2006-03-06 15:11:24 得分 0
代表一对单引号 还可以用 char(39)+edit1.Text+char(39)来代替Top
8 楼ykui(城市星空)回复于 2006-03-07 16:01:53 得分 0
问题解决了,怎么给分啊??Top
9 楼chb5210(沉默)回复于 2006-03-07 18:08:23 得分 0
点 管理
输入你的密码,要给分的人那里,给分值,就可以了Top
10 楼lswcl123(lswcl123)回复于 2006-03-07 23:52:29 得分 0
1=1 这个条件好,很多时候需要这个得Top




