主题:新手请教---组合查询问题!!!
xiulin
[专家分:200] 发布于 2006-05-23 11:39:00
各位大侠好:
如有edit1.text,edit2.text,edit3.text,edit4.text
通过输入任一或多个edit框的值,则显示相关内容;假如都不输则显示全部内容,目的为查询同一表,
不知如何控制?请详细解答!谢谢!!
[em12][em10][em1]
回复列表 (共2个回复)
沙发
gongchengh [专家分:390] 发布于 2006-05-23 11:49:00
在你查询的时候判断一下 如果是edit1是非空的 才在查询语句中加入EDIT1的查询条件 以下的也是一样
如 ADODataSet1.commandtext:='select * from aa'
那就是
ADODataSet1.commamndtext:='select * from aa where 1=1 '
if edit1.text<>'' then
ADODataSet1.commandtext:=ADODataSet1.commandtext+' and ziduan1 = '+quotedStr(edit1.text);
....
就可以了
板凳
j668 [专家分:30] 发布于 2006-12-23 21:03:00
procedure Tsb.BitBtn2Click(Sender: TObject);
var ed1,ed2,ed3,ed4,ed5,ed7,me1,che:string;
begin
//判断并赋值//
//1
if trim(edit1.text)<>'' then
ed1:='类别='''+trim(edit1.text)+''''
else
ed1:='1=1';
//2
if Sb.CheckBox1.Checked=true then
che:='正规=true'
else
che:='正规=false';
//3
if trim(edit2.text)<>'' then
ed2:='登记证='''+trim(edit2.text)+''''
else
ed2:='1=1';
//4
if trim(edit3.text)<>'' then
ed3:='商品名='''+trim(edit3.text)+''''
else
ed3:='1=1';
//5
if trim(edit4.text)<>'' then
ed4:='成份='''+trim(edit4.text)+''''
else
ed4:='1=1';
//6
if trim(edit5.text)<>'' then
ed5:='规格='''+trim(edit5.text)+''''
else
ed5:='1=1';
//7
if trim(edit7.text)<>'' then
ed7:='生产商='''+trim(edit7.text)+''''
else
ed7:='1=1';
//8
if trim(memo1.text)<>'' then
me1:='备注='''+trim(memo1.text)+''''
else
me1:='1=1';
Sb.ADODataSet1.Close;
Sb.ADODataSet1.CommandText:='select * from 商品 where '+ed1+' and '+che+' and '+ed5+' and '+ed2+' and '+ed3+' and '+ed4+' and '+ed7+'';
Sb.ADODataSet1.Open;
end;
我来回复