DBGird1 (主表)和DBGird2(从表)
一对多的关系,,,,,
我想在DBGird1中点某行,然后取得值,然后再按下一个按钮,在DBGird2中显示所有符合刚才那个取值条件的所有字段,如: DBGird1中我选中一行为2005班,
    按下按钮
    在DBGird2中显示2005班所有学生的信息,,,这该如何实现,,求详解!!!我是初学者,在线等!!!

解决方案 »

  1.   

    主表table1 , 字段class..等等
    从表table2,字段class,student_name..等等
    adoquery1:   sql.text:='select * from table1'
    adoquery2:   sql.text:='select * from table2 where class=:class'
    datasource1,对应adoquery1
    datasource2,对应adoquery2adoquery2的source 属性,设为datasource1adoquery1.open;
    adoquery2.open;
    //不用再按按钮,已经是主从的关系了.
      

  2.   

    在按钮的onclick里边写str := format('select * form table2 where class = ''%s''',[adoquery1.fieldByName('Class').asstring]);
    adoquery2.close;
    adoquery2.sql.text := str;
    adoquery2.open;
      

  3.   

    如何取DBGrid某一行的ID,并附值到一个ID2里???
      

  4.   

    在这里面写代码
    procedure TForm1.ADOQuery1AfterScroll(DataSet: TDataSet);
    begin
      tt:=ADOQuery1.FieldByName('dd').AsString
      //在根据tt去取另外的学生信息
    end;
      

  5.   

    sql语句
    'select * from table2 where class='''+dbgrid.dataset.datasource.fieldname('class')+''' '
    dbgrid的连接与释放自己写吧
      

  6.   

    merkey2002(小样的)的方法是正确的,不用去按什么按钮了
    DELPHI可以用向导自己生成主从表的代码,楼主可去研究一下DELPHI自己生成的主从表代码
      

  7.   

    用主从或主明细较简单,楼上的:merkey2002(小样的)就是一种方法!