数据库采用Access控件ADOQuery ADOTable DBGrid ADOConnection DataSource Edit1 Edit2 Edit3我把数据库中的表AAA在DBGrid中显示出来表AAA包括如下列User_Id  User_Pass User_Author现在我想实现双击这个表中的某行 能够把被双击的行的列属性
User_Id User_Pass User_Author的值分别赋给Edit1.Text Edit2.Text Edit3.Text如何实现? 我是新手 谢谢各位多多指导

解决方案 »

  1.   

    DBGrid1.DataSource->DataSource1.dateset->ADOTable.Connection->ADOConnectiondbgrid1dblclick
    edit1.text:=adotable1.fieldbyname('user_id').value;
    ..
    ..
      

  2.   

    procedure TForm3.DBGrid1DblClick(Sender: TObject);
    begin
              Edit2.Text:=ADOTable1.FieldByName('User_Pass').Value;
    end;可是Edit2.Text的值总是显示为数据库第一行的User_Pass的值 
    我双击其他行 他的值总是第一行的值不变 而不会变成我双击那一行的User_Pass的值怎么实现我双击其他行 Edit1,Edit2,Edit3的值会随着我双击的行的不同而改变?谢谢!
      

  3.   

    dbgrid1的datasource连的是adotable1吗,如果是的话,不可能出现你说的情况
      

  4.   

    怎么实现我双击其他行 Edit1,Edit2,Edit3的值会随着我双击的行的不同而改变?谢谢!
    ----------------->
    按理说你双击dbgrid某一行,adotable就已经跳到这个记录了,
    你找找看是什么原因导致adotable没有转到这个记录。
      

  5.   

    var 
      MyUser_id: variant;
    with dbgrid.datasource.dataset do
    begin
      MyUser_id:= FieldByName(User_id).value;
      with  adoquery1 do
      begin
        close;
        sql.clear;
        sql.add(select * from aaa where User_id='''+MyUser_id+'''');
        try 
          open;
          edit1.text:= FieldByName('user_id').value;
       except
       end; 
      end;  
    end;
      

  6.   

    我用我的goods表试了好用
    var
      MyUser_id: Integer;
    begin
    with dbgrid1.datasource.dataset do
    begin
      MyUser_id:= FieldByName('id').AsInteger;
      with  adoquery1 do
      begin
        close;
        sql.clear;
        sql.add('select * from goods where id='''+inttostr(MyUser_id)+'''');
        try
          open;
          edit1.text:= inttostr(FieldByName('id').asinteger);
       except
       end;
      end;
    end;