求详细方法!!

解决方案 »

  1.   

    你應該變成操作
    DBGrid 對應的 DataSet ,
    從一個數據表, 加一條記錄到另外一個表
      

  2.   

    怎么都行,
    因为两个dbgrid连接不同的数据表,
    选中第一个得时候,数据指针也就指向了当前的记录,
    实际上你将当前记录复制到另一个表中,然后刷新显示第二个表的dbgrid就可以了。
      

  3.   

    Table1----AdoQuery1---Datasource1
    Table2----AdoQuery2---Datasource2if (DataSource1.State in dsEditModes) then
    begin
        AdoQuery2.Append;
        AdoQuery2.FieldByName('字段1').Value :=AdoQuery1.FieldByName('字段1').Value;
        AdoQuery2.FieldByName('字段2').Value :=AdoQuery1.FieldByName('字段2').Value;
        ...
    end;
      

  4.   

    可以使用三层来实现!
        DataSetProvider + ClientDataSet1 + DataSource1 + 数据表    Table1----AdoQuery1---Datasource1
        如果有TABLE1---〉TAble2中
        设置连接
        adquery2
        然后
         DataSetProvider2.DataSet := adquery2;
         ClientDataSet2.ProviderName := DataSetProvider2;
         DataSource2.dataset := ClientDataSet2;
         DBGRid2.datasource := DataSource2;
         当数据表都被激活时对ClientDataSet2
         操作即可
    当表1发生变化时,别忘记报表二数据提交到数据库
                     然火灾更新ClientDataSet2
      

  5.   

    Table1----AdoQuery1---Datasource1
    Table2----AdoQuery2---Datasource2if (DataSource1.State in dsEditModes) then
    begin
        AdoQuery2.Append;
        AdoQuery2.FieldByName('字段1').Value :=AdoQuery1.FieldByName('字段1').Value;
        AdoQuery2.FieldByName('字段2').Value :=AdoQuery1.FieldByName('字段2').Value;
        ...
        AdoQuery2.post;
    end;
    //刷新一下就出来拉。
        with adoquery2 do
         begin
           adoquery2.close;
           adoquery2.clear;
           adoquery2.text:='select * from table';
           adoquery2.open;
         end;
      

  6.   

    两个不同的dbgrid显示的不同的表的话,
    你想用这种方式来移动记录,就首先要保证,
    这个两个表的结构是一样的。