1.我有四个数据表: 
表1:字段有A、A1、... 
表2:字段有B、B1、... 
表3:字段有C、C1、... 
表4:字段有ID、A、B、C、... (字段A、B、C是前三个表中的字段)2.再Form1上放置4个TTable分别对应四个表,另外有四个TDataSource分别对应四个TTable,另外有四个TDBGrid显示数据,
请问如何设置TTable的MasterSource实现前3个表来控制显示第4个表的数据,也即是显示只有满足前3个表当前的条件的数据?

解决方案 »

  1.   

    第四表用query,自己写SQL查询就可以了。
    TTable的MasterSource是设置主明细的关系,你的表要有主明细结构也可以。
      

  2.   

    这需要写代码吧,用AdoQuery控件
    第四个dbgrid的datasource的dataset设定为adoquery1
    adoquery1.sql.add(select * from 表4 where a=:s1 and b=:s2 and c=:s3);
    ADOQuery1.Parameters.ParamByName(s1).Value:=aa;
    ADOQuery1.Parameters.ParamByName(s2).Value:=bb;
    ADOQuery1.Parameters.ParamByName(s3).Value:=cc;
    ADOQuery1.Open;
      

  3.   

    后三个表都指向主表的datasource,然后设置后三个表的参数=主表的主键