原码如下:procedure TForm1.search2(f2:tcombobox;t2:tedit);       //自定义过程search(在数据库中搜寻指定条件的数据)
var
  SearchField: integer;       //要查找的字段名
  SearchValue: integer;       //要查找的字段值
begin
   if f2.Text='' then
  begin
    showmessage('请输入信息');
    exit;
  end;
   if t2.Text='' then
  begin
    showmessage('请输入信息');
    exit;
  end;
  SearchField :=  '%' +Trim(f2.Text)+ '%';           //将Edit的值赋给SearchField
  SearchValue := '%' + Trim(t2.Text) + '%';   //将Edit的值赋给 SearchValue
  with ADOQuery1 do
  begin
    close;       //先关闭数据模块中的ADOQuery
    sql.Clear;   //清空ADOQuery中的SQL值
    sql.Add('select sum(总计)as 合计销售额 from xs where 是否结清 like "是" and ' + SearchField + ' like ''' + SearchValue+''''); 
                         
  end;
  ADOQuery1.Open;     
end;
是没有定义好呢?还是什么原因?

解决方案 »

  1.   

    SearchField :=  '%' +Trim(f2.Text)+ '%';           //将Edit的值赋给SearchField
      SearchValue := '%' + Trim(t2.Text) + '%';   //将Edit的值赋给 SearchValue
    --------------------------你编译时就没发现???????
      

  2.   

    换成了。 strtoint(f2.Text)..不行
      

  3.   

    1、不知道你的SearchField为什么要加上%,这个不是搜索字段吗?
    2、根据你的标题,我感觉你说的SearchField应该为一个数值型字段,对于数值型字段用like操作有问题吧(我倒是没有试过)。
      

  4.   

    sql.Add('select sum(总计)as 合计销售额 from xs where 是否结清 like "是" and 日期 between' + SearchField + ' and ''' + SearchValue+'''');