时间控件两个:DateTimePicker1\DateTimePicker2(查找的时间段)
其他控件:combobox1\EDIT1各一个(Cmbobox1选择的是DBGrid的列,EDIT1是列下面的详细)怎么样用这几个控件做一相查找?然后把查找所得显示在DBGrid1
求高手帮帮忙,这段代码怎么写?谢谢A    B    C    D(ABCD就是combobox1下拉的选择)
1    1    1    1
2    2    2    2
1    2    2    2
3    3    5    5如果我在Combobox1选择A并在EDIT1输入"1"点查找,DBGrid1显示如下
A    B    C    D
1    1    1    1
1    2    2    2

解决方案 »

  1.   

    把几个控件的值作为变量放进sql语句不就行了吗,这有啥不会的
      

  2.   

    时间控件两个:DateTimePicker1\DateTimePicker2(查找的时间段) 
    其他控件:combobox1\EDIT1各一个(Cmbobox1选择的是DBGrid的列,EDIT1是列下面的详细) var
       vSql: String;
    begin
      vSql := 'select * from table where key_id is not null';
      if DateTimepicker1.checked then vSql := vSql + ' and c1>=:d1';
      ...
      if combobox1.text<>'' then vSql := vSql + ' and c2=:c2';
      with adoquery1 do
      begin
        close;
        sql.text := vSql;
        if DateTimepicker1.checked then parameters.parambyname('d1').value := datetimepicker1.date;
         ....    if combobox1.text<>'' then parameters.parambyname('c2').value := combobox1.text;
        ....
        Open;
      end;放一个datasource设属性dataset为adoquery1dbgrid1的属性datasource设置为上面的datasource
      

  3.   

    var
    temp1,temp2:string;
    begin
      temp1:=combobox1.text;
      temp2:=edit1.text;
      if (temp1<>'')and(temp2<>'') then
      begin
      adoquery1.close;
      adoquery1.sql.clear;
      adoquery1.sql.add('select * from tabel(你的表名) where '+temp1+'='+''''+temp2+'''');
      adoquery1.open;
      end;
    end;
    应该就是这个样子的了