还是用adoquery吧
使用sql语句
很容易的
if trim(edit_mainage.text)<>'' then
begin
   with datamodule.adoquery do
   begin
     active:=false;
     sql.text:='select * from tablename where 年龄>='+trim(edit_minage.text);
     active:=true;
   end;
end;

解决方案 »

  1.   

    加上中括号之后单大于或者小于都可以
    但是希望年龄属于一个年龄范围
    要年龄大于某个数小于另外一个数
    我就是依次像如上代码一般判断两个域是否为空
    然后形成
    年龄>=10 and 年龄<=30 这样的形式
    来查询,但是说:
    “变量或者类型不正确,或者不在可以接受的范围之内,要不就是与其他数据冲突”
    不知是怎么回事。
      

  2.   

    [年龄]>=10 and [年龄]<=30
      

  3.   

    if(length(trim(Edit_minage.Text))>0)then
       begin
         if(IsFirst)then
         begin
            DataModule_Main.ADOTable_hr.Filter:='[年龄]>='+trim(Edit_minage.Text);
            IsFirst:=False;
         end
         else
         begin
            DataModule_Main.ADOTable_hr.Filter:=DataModule_Main.ADOTable_hr.Filter+'and [年龄]>='+trim(Edit_minage.Text);
         end;
       end;
       if(length(trim(Edit_maxage.Text))>0)then
       begin
         if(IsFirst)then
         begin
            DataModule_Main.ADOTable_hr.Filter:='[年龄]<='+trim(Edit_maxage.Text);
            IsFirst:=False;
         end
         else
         begin
            DataModule_Main.ADOTable_hr.Filter:=DataModule_Main.ADOTable_hr.Filter+'and [年龄]<='+trim(Edit_maxage.Text);     end;
       end;这样的代码应该对吧,
      

  4.   

    把代码改成了
    [年龄] between 10 and 30 还是不对阿