j668 发表于 2006-12-23 21:01

[经验]多条件查询示例!!很有用..

<P>如有edit1.text,edit2.text,edit3.text,edit4.text<BR>    通过输入任一或多个edit框的值,则显示相关内容;假如都不输则显示全部内容,目的为查询同一表,</P>
<P>procedure Tsb.BitBtn2Click(Sender: TObject);<BR>var ed1,ed2,ed3,ed4,ed5,ed7,me1,che:string;<BR>begin<BR>//判断并赋值//<BR>  //1<BR>  if trim(edit1.text)&lt;&gt;'' then<BR>     ed1:='类别='''+trim(edit1.text)+''''<BR>  else<BR>    ed1:='1=1';<BR>  //2<BR>  if Sb.CheckBox1.Checked=true then<BR>    che:='正规=true'<BR>  else<BR>    che:='正规=false';<BR>   //3<BR>  if trim(edit2.text)&lt;&gt;'' then<BR>    ed2:='登记证='''+trim(edit2.text)+''''<BR>  else<BR>    ed2:='1=1';<BR>  //4<BR>  if trim(edit3.text)&lt;&gt;'' then<BR>    ed3:='商品名='''+trim(edit3.text)+''''<BR>  else<BR>    ed3:='1=1';<BR>  //5<BR>  if trim(edit4.text)&lt;&gt;'' then<BR>    ed4:='成份='''+trim(edit4.text)+''''<BR>  else<BR>    ed4:='1=1';<BR>  //6<BR>  if trim(edit5.text)&lt;&gt;'' then<BR>    ed5:='规格='''+trim(edit5.text)+''''<BR>  else<BR>    ed5:='1=1';<BR>  //7<BR>  if trim(edit7.text)&lt;&gt;'' then<BR>    ed7:='生产商='''+trim(edit7.text)+''''<BR>  else<BR>    ed7:='1=1';<BR>  //8<BR>  if trim(memo1.text)&lt;&gt;'' then<BR>    me1:='备注='''+trim(memo1.text)+''''<BR>  else<BR>    me1:='1=1';<BR>Sb.ADODataSet1.Close;<BR>Sb.ADODataSet1.CommandText:='select * from 商品 where '+ed1+' and '+che+' and '+ed5+' and '+ed2+' and '+ed3+' and '+ed4+' and '+ed7+'';<BR>Sb.ADODataSet1.Open;<BR>end;</P>

liutianfeiyu 发表于 2006-12-25 14:14

<P>谢谢</P>

liutianfeiyu 发表于 2006-12-25 14:16

<P>谢谢</P>

a191037348 发表于 2007-10-29 09:47

想法不错

xu2000 发表于 2007-10-29 18:53

<P>说实话,这个思路不好。</P>

volte 发表于 2007-10-30 15:40

<P>这么土的方法都有!</P>

页: [1]

编程论坛