在窗体的某一字段双击,打开一个含有dbgrid的窗体,双击dbgrid中的某一条记录,此记录的某一字段值赋给上一字段。
怎么实现呀,请大家帮帮忙!
很少提高问题,也借此机会,给大家散散分,以表心意:)

解决方案 »

  1.   

    设置一个变量,这个变量就是存储的目标值。双击dbgrid中的某一条记录,此记录的某一字段值赋给这个变量。然后在赋值给上字段.
      

  2.   

    在原窗体类设置一个公用变量双击dbgrid中的记录时,记录的某段值赋值给公用变量 并关闭dbgrid所在的窗体
      

  3.   

    “双击dbgrid中的记录”,这个事件没有呀,还是我找不到呀?
    多谢以上各位的帮忙
      

  4.   

    就是OnDblClick事件 自己找找
      

  5.   

    var
    s,s1:string;
    i:integer;
    begin
    i:=dbgrid1.SelectedIndex;//取得列号
    s:=dbgrid1.Columns.Items[i].FieldName;//取得该列的字段名称
    s1:=dbgrid1.Columns.Items[i-1].FieldName;//取得前一列的字段名称
    adoquery1.Edit;
    adoquery1.FieldByName(s1).AsString:=adoquery1.FieldByName(s).AsString;
    adoquery1.Post;
    以上连的数据库为SQL SERVER D6调试下通过了。。
    你自己加个判断是不是在第一列因为第一列不存在前一列。。
      

  6.   

    上面的代码写在DBGRID里的ONDBLCLICK事件中去。。
      

  7.   

    procedure Tform1.DBGrid1OnDBLClick(Sender:TObject);
    var
      s,s1:string;
      i:integer;
      form2:Tform2;
    begin
      form2:=TForm2.Create(Nil);
      if Form2.ShowModal=mrOK then  //--双击视为返回ok
      begin
        if (form2.adoquery1.active) and (form2.adoquery1.recordcount>0) then
        begin
          //--引用 loon1981(懒家伙) 
          i:=dbgrid1.SelectedIndex;//取得列号
          s:=dbgrid1.Columns.Items[i].FieldName;//取得该列的字段名称
          s1:=dbgrid1.Columns.Items[i-1].FieldName;//取得前一列的字段名称
          adoquery1.Edit;
          adoquery1.FieldByName(s1).AsString:=form2.adoquery1.FieldByName(s).AsString;
          adoquery1.Post;
        end;
      end; 
      form2.free;    
    end;