1、在一个form上。左边为一个输入框。右边为dbgrid控件
要求输入框在输一个控制为8好字符的时候,从数据库中的表a中读取数据(效果就像我们写代码的时候
form.方法  它会自动选择)
2、在输入框输完第8个字符的时候。右边的dbgrid里自动显示出表b中以输入的字符串搜索出来的数据
select from b where name=''输入字符串'';最主要的是自动搜索刷新的这个效果。谢谢大家!~

解决方案 »

  1.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      if length(edit1.Text) = 8 then
      begin
        Key := #0;
        with adoquery1 do
        begin
          close;
          sql.clear;
          sql.text := 'select * from b where name =' + edit1.Text;
          open;
        end;
      end;
    end;
      

  2.   

    8个?
    你在KEYPRESS里写上,
    if length(Trim(Edit.text))=8 then
    begin
     ado.……
     sql.clear;
     sql.add('Select * from b where name ='''Trim(Edit.text)'''');
     open;
    end;
    类似吧
      

  3.   

    这个是第二个问题呢~
    第一个问题的:像DELPHI系统一样的输入一个字符以这个字符为开头的所有的记录都显示然后一部部接近你输入的字符这个字符串。
    效果就比如。你在GOOGLE中输入你曾经搜索过的关键字段的时候它会显示一系列记录的
    我这里要显示的不是已经输过的而是表格里的备选的记录
    比如表格里有
    abcad
    abca2
    abcd3
    abdd3
    addd3
    这五条记录
    在你输入a的时候,下面显示五条记录为备选。
    等你输到ab的时候,下面显示四条记录为备选。
    等你输入abc的时候,下面显示三条记录为备选。
    最终等你输入abcad的时候确定为你这条记录
    然后右边的DBGRID 控件显示这个个name =abcad的员工的所有操作过的记录(这条上面已经有人写了~)
    我要前面那个效果再^_^
      

  4.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      if length(edit1.Text) < 8  then
      begin
        with adoquery1 do
        begin
          close;
          sql.clear;
          showmessage('12');
          sql.text := 'select * from b where name='+'%'+trim(edit1.Text)+'%';
         // open;
        end;
      end
      else
        key := #0;
    end;
        //    这样不停执行查询,我汗.....
      

  5.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      if length(edit1.Text) = 8 then
      begin
        Key := #0;
        with adoquery1 do
        begin
          close;
          sql.clear;
          sql.text := 'select * from b where name  like ' + edit1.Text;
          open;
        end;
      end;
    end;這樣才正確嗎。要把“=”號換成  “like ”
      

  6.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      if length(edit1.Text) < 8  then
      begin
        with adoquery1 do
        begin
          close;
          sql.clear;
          sql.text := 'select * from b where name like '+'%'+trim(edit1.Text) //这里改一下去掉一个%号;
          open;                      
        end;
      end
      else
        key := #0;
    end;
      

  7.   

    http://community.csdn.net/Expert/topic/3607/3607466.xml?temp=.3181574
    借宝地一用,没钱了,没办法 :)
      

  8.   

    这个查询我现在明白了先谢谢了
    还有就是我想问的是下面显示的是edit的哪个属性?