有4个查询控件,按多个条件查询,可以是其中某一个,或是某两个,或是三个,该怎样实现?  急用!!!

解决方案 »

  1.   

    select * from 表名 where 条件1 like ''%'+edit1.text+'%'' and 条件2 like ''%'+eidt2.text+'%''就这样就OK啦。。
      

  2.   

    好象没看明白,不过按照楼上的想法,是不是需要把and换成or?
      

  3.   

    我的意思是:
    编号:从( )到( )
    文化程度:下拉列表框(有4个选项)
    出生日期:Timepicker(可选时间),从() 到()
    工龄:下拉列表框(有4个选项)然后可以根据其中一个查询,也可以任意组合查询
    怎样实现?   
      

  4.   

    strSql:='select * from tablename wehre 1=1'
    if trim(Edit1.text)<>'' then
      strSql:=strSql+' and column1='''+ trim(Edit1.text) +''''
    if trim(Edit2.text)<>'' then
      strSql:=strSql+' and column2='''+ trim(Edit2.text) +''''

      

  5.   

    在每个条件控件前面加上一个CHECKBOX就可以了. 
    CHECKED = SQLSTR = ' AND 条件 ' 
    UNCHECKED = SQLSTR := ' And 1 = 1 '//1=1是很有用的小TRICK
    然后把SQLSTR相加组成最终的查询条件就可以了.
      

  6.   

    判斷查詢條件的輸入框是否有了改變 如果不是初始的狀態 就添加到查詢語句
    ...
    Sql.add(..where 1=1)//加上1=1是為了拚語句,這樣防止一個不選就出錯
    if edit1.text<>'' then
    begin  
      Sql.add('and id =:id);
      Paramerters.ParamByName('id').Value:=edit1.text;
    end;
    if Combobox1.itemindex>0  then 
    begin
      Sql.add('and whcd =:whcd);
      Paramerters.ParamByName('whcd').Value:=Combobox1.text;
    end;