如何在dbgrid内选中一条纪录,之后双击在另一个form内的dbgrid里分别显示出来

解决方案 »

  1.   

    双击时记往该记录的ID 打开另一个form时dbgrid的数据库连接加条件id
      

  2.   

    1,记住form1的dataset 的KEY  然后在form2上再次查询出来;
    2,页面互相传递
      

  3.   

    你这大侠,直接加分就行了,开这么多贴子,别人回复你也没看到!dbgrid1的数据源ado1的SQL语句:select * from ls where 标志=1
    dbgrid2的数据源ado2的SQL语:select * from ls where 标志=0
    dbgrid1的事件动作为:
    ado1.edit;
    ado1.fieldbyname('标志').asstring:='0';
    ado1.post;
    ado2.requery;
      

  4.   

    我的笨方法。
    1、form1要引用form2的单元。form2也要引用form1的单元。(会吗?应该会。只有引用了,才能在form1的窗口中控制form2的显示与隐藏。你肯定会。)。
    2、form1中的控件,
     ADOConnection1: TADOConnection;//连接数据库的
        ADOQuery1: TADOQuery;       //操作数据,筛选数据的工具。
        DataSource1: TDataSource;   //数据源,给数据显示控件提供数据的桥梁。
        DBGrid1: TDBGrid;           //数据表,显示数据。
        DBEdit1: TDBEdit;           //数据文本框,显示单个字段的数据。
      先用ADOConnection1连接好数据库。(应该会的)。
      再把ADOQuery1的connection属性值设置为:ADOConnection1(把ADOQuery1和ADOConnection1连接起来.
      再在ADOQuery1的sql中写上语句如:select * from  你的表名 
      再把DataSource1的dataset属性值设置为:ADOQuery1 (把DataSource1和ADOQuery1连接)
    再把 DBGrid1和DBEdit1的datasource属性都设置为:DataSource1
    再把DBGrid1的datafield设置为你这个要访问的数据表中的key字段(数据唯一的字段。)
    好了。准备好后
    在form1的创建事件中写以下事件。
    procedure TForm1.FormCreate(Sender: TObject);
    begin
        ADOQuery1.Active :=true;//启动form1的ADOQuery1
    end;
    在DBGrid1的双击事件写以下事件。procedure TForm1.DBGrid1DblClick(Sender: TObject);
    begin
       form2.ADOQuery1.SQL.Clear;
      Form2.ADOQuery1.SQL.Add('select * from 数据表名 where key字段名称='+ DBEdit1.Text +'');
       Form2.ADOQuery1.Open;
       Form2.Show;
    end;
     
      2、form2中的控件:
         DataSource1: TDataSource;
        DBGrid1: TDBGrid;
        ADOQuery1: TADOQuery;
      先把ADOQuery1的connection属性值设置为:form1.ADOConnection1(把ADOQuery1和form1中的ADOConnection1连接起来.
      再把DataSource1的dataset属性值设置为:ADOQuery1 (把DataSource1和form2的ADOQuery1连接)
      再把 DBGrid1的datasource属性都设置为:DataSource1(form2的DataSource1)3、运行程序。
     总结:我的笨方法就是用一个dbedit控件记住某个字段的值。然后再用另外一个query筛选数据时加上条件用的。如:'select * from 数据表名 where key字段名称='+ DBEdit1.Text +''。而且你点击不同的行,dbedit1就会显示不同行的这个字段的值。
    4、可能我说的太罗嗦了。非专业!请见谅。qq:287693830