我有一个edit控件,前面有ABC几个字符,我现在想要从ABC后面加入一个字符,然后从加入的这个字算起,进行模糊查询,怎么做

解决方案 »

  1.   

    function Locate(const KeyFields: String; const KeyValues: Variant; Options: TLocateOptions): Boolean;
    函数可以实现
      

  2.   

    Locate(const KeyFields: String; const KeyValues: Variant; Options: TLocateOptions)
      

  3.   

    在Edit1.OnChange里写:
    procedure TForm1.Edit1Change(Sender: TObject);
    var
      TmpStr:String;
    begin
      TmpStr:=Copy(Edit1.Text,3,Length(Edit1.Text)-3);
      //屏去ABC
      Query1.Close;
      Query1.SQL.Text:=
        'select * from T where F Like '''+TmpStr+'''';
      Query1.Open;
    end;
      

  4.   

    我是这样写的,但是不行啊,请帮忙看看
    procedure TForm_batch.Edit_colorKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    var
      TmpStr:String;
      i:integer;
    begin
    if key=40 then
    begin
    try
        i:=length(trim(edit_color.text));
        TmpStr:=Copy(Edit_color.Text,i,Length(Edit_color.Text)-i);    datamodule1.DataSource_platerequire.DataSet:=Query_platerequire;
        dbgrid2.DataSource:=datamodule1.DataSource_platerequire;
        with query_platerequire do
        begin
            close;
            databasename:='case';
            sql.Clear;
            sql.Add('select * from platequire');
            sql.add('where  platerequire  Like '+''''+ trim(TmpStr) +''+'%'+'''');
            prepare;
            open;
        end;
        if dbgrid2.DataSource.DataSet.RecordCount>0 then
        begin
           dbgrid2.Visible:=true;
           dbgrid2.SetFocus;
        end else
        begin
           dbgrid2.Visible:=false;
        end;
       except
         abort;
       end;
      end;
    end;
      

  5.   

    什么意思啊erp2(天涯劍) ,态度不好
      

  6.   

    你的思路是正确的,不过这句代码有问题:
    sql.Add('select * from platequire');
            sql.add('where  platerequire  Like '+''''+ trim(TmpStr) +''+'%'+'''');where之前加一个空格,%之前多了两个分号,这个很容易弄错的。
      

  7.   

    sql.Add('select * from platequire'$20);//和where之间要加空格
    sql.add('where  platerequire  Like '''+ trim(TmpStr) +'%''');
      

  8.   

    i:=length(trim(edit_color.text));
        TmpStr:=Copy(Edit_color.Text,i,Length(Edit_color.Text)-i);
    这一句话好像有问题吧,你的字符串长度是I,然后你的copy从第i位开始,那么什么都得不到了啊
      

  9.   

    var
      namestr:string;
      lenth:integer;
    begin
      lenth:=length(edit.Text);
      namestr:=copy(edit.Text,4,lenth);
      query.SQL.Clear;
      query.SQL.Add('select * from 表名 'where 字段 like "%'+Namestr+'%"');
      query.Open;
    end;现在才发现这个世界比我菜的还真多
      

  10.   

    i:=length(trim(edit_color.text));
        TmpStr:=Copy(Edit_color.Text,i,Length(Edit_color.Text)-i);
    这一句话好像有问题吧,你的字符串长度是I,然后你的copy从第i位开始,那么什么都得不到了啊怎么改啊