在一个PageControl的TabSheet1里有一个DBGrid,ADOQuery,DataSource,在TabSheet2上有一些Edit,ComboBox等,界面的最上面有一些按钮,其中有“修改”。现在要实现,在DBGrid里选中一条记录,然后点“修改”按钮,就转身到TabSheet2里面,并且各个Edit里就是选中这条记录的各字段的值,此时可以修改,保存.谢谢

解决方案 »

  1.   

    点修改后,
    PageControl1.ActivePage:=tabsheet2;
    edit1.text:=dbgrid1.Fields[0].Value.Asstring;///把第一个子段的值给edit1;
    ComboBox.text:=dbgrid1.Fields[1].Value.Asstring;把第二个子段的值给ComboBox;然后就可以在edit1,ComboBox中出现dbgrid中所选的行的值了。
      

  2.   

    同意楼上, 也可以使用dataset.onscroll来显示各字段的值到edit
      

  3.   

    procedure TfrmCars.btnEditClick(Sender: TObject);
    begin
    //
    PageControl1.ActivePageIndex := 1;
    CarName.Text := DBGridEh1.Fields[1].Value.AsString; 
    //CarName.Text := DBGridEh1.FieldColumns['CarName'].Field.Value.AsString;
    end;to : lovend(颓废之吻)  
    出错了
    Project Project1.exe raised exception class EVariantInvalidOpError with message 'Invalid variant operation'. Process stopped. Use Step or Run to continue.
      

  4.   

    CarName.Text := DBGridEh1.Fields[1].Value.AsString;  //这行出错
      

  5.   

    使用数据感知组件好了DbEdit,Dbcombbox
      

  6.   

    DbEdit,Dbcombbox
    设置datasource就可以用了,最近写代码麻烦,简单的问题简单解决
      

  7.   

    建议你把我的代码在dbgrid的单击事件oncellclick中写,
      

  8.   

    oncellclick 写些什么呢???我想和象asp代码一样的,比如传递一个id参数
    sql="select * from cars wherer id ="& id
    rs.open sql,conn,3,3在delphi里怎样传递一个参数,并且打开这条记录,把这条记录的内容显示在edit,combobox里面.
      

  9.   

    谢谢: lovend(颓废之吻)  终于实现了,我修改成如下:procedure TfrmCars.btnEditClick(Sender: TObject);
    begin
    //
     DBGridEh1CellModify(DBGridEh1.FieldColumns['CarName']);
    end;procedure TfrmCars.DBGridEh1CellModify(Column: TColumnEh);
    var
      tempStr:string;
    begin
     //指向到TabSheet2
     PageControl1.ActivePageIndex := 1;
     //取得tempStr值
     tempStr:=dbgrideh1.DataSource.DataSet.fieldbyname('CarName').AsString;
    // showMessage(tempStr);  有值.
      qyTemp.Close;
      qyTemp.SQL.Clear ;
      qyTemp.SQL.Add('select * from Cars where CarName="'+tempStr+'"');
      qyTemp.Open;  //判断有记录?  CarName.Text := qyTemp.FieldValues['CarName'];end;但是,现在为什么CarName的Edit不能编辑,包括在TabSheet2里的其它按钮也不能动,这是怎么回事?