如果你想要这样的话,
那使用一个TEdit-------------供输入no用
在 TEdit的OnChange事件中加入如下代码Query.Locate('no', [Edit1.Text], [设置参数]);//参数详见在线帮助!恕不另行提供

解决方案 »

  1.   

    用OnChange事件不太好:
    如果你输入101132,就会导致Query.Locate以参数1、10、101、1011、10113、101132调用六次。
    应该用OnExit事件。
      

  2.   

    你把用Tedit代替DBEDIT后,其他的不变,然后通过TQUERY的SQL语句定位在这个记录上,这样其他的三个DBEDIT就会直接指向这条记录了。
      

  3.   

    如果第一个dbedit值为address的话,该如何写?
    form1.dbedit1.text:=????
      

  4.   

    //////////////////
    你好!请问你给我的回答中,事先就要建好query吗?另外我想知道的就是比如说:
    form1.tdbedit1.text=???
    如何写?
    //////////////////
    好象你那样不行~~form1.dbedit1.value := 'address';~~我也没试过这样行不行 :-)
      

  5.   

    如果第一个dbedit值为address的话,实在是不合理,呵呵~~~~,个人看法
      

  6.   

    //实践秘籍,KillMessage在DbGrid.pas中找.procedure TMainForm.NoDBEditKeyDown(Sender: TObject;
      var Key: Word; Shift: TShiftState);
    var S: String;
    begin
      case Key  of
        VK_RETURN:
          KillMessage(NoDBSEdit.Handle,WM_CHAR);
          S := NoDBSEdit.Text;
          if Stu3Query.Locate('No',S,[]) then
          begin
            ...
          else 
            ... 
          end;
      end;
    end;
      

  7.   

    为什么非要用dbedit用Tedit不是很好,在用tqurey查询手工加入到edit中