这个问题应该不难吧,同志们发过来的贴子我都试了,还是不行呀,请高手帮助,谢谢
下面的是一个书籍查询界面的布局,设置如下:
dbgrid1的Datasource:Datasource1 Datasource1的Daset是:table1
dbgrid2的Datasource:Datasource2 Datasource2的Daset是:query1
我现在想实现当我点击DBGRID1中相应的出版社名称时,dbgrid2中就会
显示出相应的出版社的书籍信息,请问这个应该具体怎么做,请写出详细的
代吗为谢!
DBgrid1 DBgrid2
出版社名称 书籍编号,书籍名称,作者,定价,现有数量,出版社名称
----- ---- ---- -- -- ---- -----
清华出版社 A-001 JAVA 李伟 50 2 清华出版社
问题点数:0、回复次数:5Top
1 楼jasonmark(jason)回复于 2005-04-02 12:12:47 得分 0
在table1的AfterScroll中写:
Query1.SQL.Clear;
Query1.Close;
Query1.SQL.Add('select 书籍信息.* from 书籍信息 inner join 出版社 on 书籍信息.出版社id = 出版社.出版社id');
Query1.Open;
表名和字段名改成你定义的名称Top
2 楼Crystal1981(小婵)回复于 2005-04-02 12:28:24 得分 0
在中FROMSHOW中写
query1.datasource:=Datasource1;
Query1.SQL.Clear;
Query1.Close;
Query1.SQL.Add('select 书籍信息.* from 书籍信息 inner join 出版社 on 书籍信息.出版社id
=: 出版社.出版社id');//=:表示相连的关键字。
Query1.Open;
Top
3 楼jasonmark(jason)回复于 2005-04-02 12:48:05 得分 0
忘写where条件了
在table1的AfterScroll中写:
Query1.SQL.Clear;
Query1.Close;
Query1.SQL.Add('select 书籍信息.* from 书籍信息 inner join 出版社 on 书籍信息.出版社id = 出版社.出版社id where 书籍信息.出版社id = '+table1.FieldByName('出版社id').AsString+'');
Query1.Open;
表名和字段名改成你定义的名称,如果你有‘出版社id’字段并且为数字型的话,就是以上,如果没有就试试下面:
Query1.SQL.Clear;
Query1.Close;
Query1.SQL.Add('select 书籍信息.* from 书籍信息 inner join 出版社 on 书籍信息.出版社名称 = 出版社.出版社名称 where 书籍信息.出版社名称 = '''+table1.FieldByName('出版社名称').AsString+'''');
Query1.Open;
Top
4 楼yesu_sf(为什么)回复于 2005-04-02 14:12:00 得分 0
建立主从表Top
5 楼haitingr(haitingr)回复于 2005-04-02 19:23:29 得分 0
当你选择第一个dbgrid时,table1中的record的指针也在变化,table1也指向了你点击的记录条,这样就可以从中取出信息,对query1进行操作啊
不过你要在其中做异常处理,因为这种操作我感觉容易让程序变的脆弱Top




