其实用table的filter,应该是很方便的。
自己看书吧。应该有很多例子的,好象是3月份的电脑编程技巧与维护上的一篇文章介绍的很详细的,可以找来看看。

解决方案 »

  1.   

    SELECT * FROM TABLE1 WHERE (name LIKE 'a%');
    SELECT * FROM TABLE1 WHERE (name LIKE 'a1%');
      

  2.   

    同意   netlib(河外孤星)
      

  3.   

    with query1 do
    begin
        close;
        sql.Clear;
        sql.add('select * from m111 where name like '''+edit1.Text+'''');
        Open;
    end;
    你只用设置edit1.text就可改了。
      

  4.   

    问一下,你的a1 a2 a3是列还是行?
    看上去象是指的列。如果是列的话,就可以用Tfield的visible属性来控制就行了。
    以下的语句经调试通过
    procedure TForm1.button1Click(Sender: TObject);
    var i:integer;
        find:boolean;
    begin
      find:=false;
      for i:=0 to query1.FieldCount-1 do
        if   not (query1.Fields[i].FieldName=edit1.Text)   then
               query1.Fields[i].visible:=false
        else
          begin
          find:=true;
          query1.Fields[i].visible:=true;
          end;
        if not find then
        for i:=0 to query1.FieldCount-1 do
          if   query1.Fields[i].FieldName[1]=edit1.Text   then
            query1.fields[i].Visible:=true;
    end;
    不过要注意大小写,这里必须大小写一样才行,你想忽略大小写的话,自己处理一下就行了。
      

  5.   

    不好意思,河外孤星老兄,你的方法如果是在字段又有a1,又有a11的情况下就不行了。因为a1已经精确匹配了,但是a11还是要出来,不过,如果发贴子的老兄愿意让两个都出来的话,也就可以了。
      

  6.   

    不好意思,河外孤星老兄,你的方法如果是在字段又有a1,又有a11的情况下就不行了。因为a1已经精确匹配了,但是a11还是要出来,不过,如果发贴子的老兄愿意让两个都出来的话,也就可以了。