在FORM1中有一个DBGRID表,用QUERY和DATASOURCE,其中有ID,NAME,QUANTITY,PRICE,WEIGHT等字段,还有一个EDIT,请问:可不可以通过一个按钮来实现以下功能:在EDIT中输入0001,可以在DGRID的第一行ID列中显示,当我再次输入0002时,可以在DGRID的第二行的ID列显示,
麻烦各位大哥了!

解决方案 »

  1.   

    Locate('ID',Edit1.Text',[]);
    Query1.FieldByName('ID').FocusControl;
      

  2.   

    直接定位到id=edit?还是不管ID值,顺序显示到ID中?
      

  3.   

    LOCATE类似于WORD中的查找功能。
      

  4.   

    New后直接赋值 DBGrid1.Fields[0].Value:=Edit1.text;
    DBGrid1.Fields[1].Value:=Edit1.text;判断自己加...
      

  5.   

    在FORM1中有一个DBGRID表,用QUERY和DATASOURCE与一个dbo.STORAGE的表连接,其中有ID,NAME,QUANTITY,PRICE,WEIGHT等字段,现在可以在DBGRID中输入多条记录并保存到STORAGE中,我想用几个EDIT与字段对应,请问:可不可以通过一个按钮来实现以下功能:在EDIT1中输入'0001',EDIT2 输入‘苹果’等,可以在DGRID的第一行ID,NAME列中显示,当我再次输入'0002','香蕉'时,可以在DGRID的第二行的ID,NAME列显示,
    麻烦各位大哥详细指点,在线等!
      

  6.   

    Query1.Locate('ID',Edit1.Text,[]);
    Query1.FieldByName('name').FocusControl;
      

  7.   

    这个方法我试了,不行啊,在EDIT1,和EDIT2中的数据根本就不能在DBGRID中显示,它老是锁定在第一行的NAME那里,麻烦各位帮帮小弟了
      

  8.   

    procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
    begin
      if Key = #13 then
      begin
        if Query1.Locate('ID',ID,[]) then
          Query1.Edit;
        else
          Query1.Append;
        end;
        Query1.FieldByName('ID').AsString := Edit1.Text;
        Query1.FieldByName('Name').AsString := Edit2.Text;
        Query1.Post;
      end;
    end;