子报表难题

lmj9401 2012-07-02 06:24:56
在access中有表mdata、主报表mrpt和子报表srpt,表mdata有名称和颜色2个字段,如下所示:

+=====+====+
|名称 |颜色|
+=====+====+
|苹果 |红色|
+-----+----+
|香蕉 |黄色|
+-----+----+

其中,主报表mrpt的报表页眉区中有2个子报表控件Child0和Child1,它们的源对象(数据来源)都是子报表srpt;子报表srpt的报表页眉区有1个文本框控件,控件来源为“颜色”。

现需动态改变子报表srpt的记录源,使得控件Child0的子报表的记录源为查询:select 颜色 where 名称="苹果",控件Child1的子报表的记录源为查询:select 颜色 where 名称="香蕉"。这样在主报表mrpt通过控件Child0和Child1可以同时看到显示“红色”和“黄色”,应该如何实现?
...全文
85 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lmj9401 2012-07-03
  • 打赏
  • 举报
回复
此问题的关键在于,我无法在子报表srpt中获得它的parent(child1或child0)。

经过我的测试,子报表srpt的parent居然是主报表mrpt,这是不能接受的,无益于解决问题。

不知道有什么办法能够准确知道子报表srpt的父容器(child1或child0)究竟是哪一个?
lmj9401 2012-07-03
  • 打赏
  • 举报
回复
在主报表中使用2个子报表控件来显示查询内容,其中2个子报表控件都链接到一个报表srpt上。

我的想法是希望通过更改报表srpt的记录源(SQL语句)来实现在2个子报表控件中显示不同的查询结果,或者使用筛选(filter),能达到目的就行。

我有一个初步想法,就是对报表srpt记录源的SQL语句参数化,将SQL改写为:select 颜色 from mdata where 名称=reports!mrpt!child0.tag,这样只需要更改子报表控件child0的tag属性就可以实现动态查询。

遗憾的是这样做对子报表控件child1毫无用处!因为在子报表控件child1中也是按child0.tag查询的,结果2个子报表控件显示的结果是一样的。

下面是一个错误的报表srpt记录源:
select 颜色 from mdata where 名称=parent.tag
虽然是错误的,但是却很好体现了我的想法,在child0中按child0.tag查询,在child1中按child1.tag查询,这样通过设置2个子报表控件的tag属性来实现显示不同的内容。

问题是,正确的该怎么做,求教?!
ACMAIN_CHM 2012-07-02
  • 打赏
  • 举报
回复
没看懂需求是什么。
lmj9401 2012-07-02
  • 打赏
  • 举报
回复
查询写错了,应该是:select 颜色 from mdata where 名称="苹果"

7,712

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧