将查询参数传递给子报告

时间:2013-04-26 18:24:53

标签: ms-access ms-access-2007 access-vba

自从我使用MS Access已经很长时间了,我不确定我是否正确这样做。

我有一个报告绑定到单个用户名列表的查询。该报告对用户名进行分组,并在详细信息中包含一个子报告。

子报告/图表基于接受用户名参数的查询。由于子报表未绑定,我需要将用户名参数从主报表详细信息onload事件传递到子报表,从而传递到基础查询。

我不理解如何实现这一点,或者即使我的方法合理。

(p.s。我最初发布在“超级用户”上,但看到没有多少人使用该网站。)

感谢您的帮助

1 个答案:

答案 0 :(得分:10)

为了充分利用子报表,应将它们绑定到记录源(表或查询),并使用Subform / Subreport控件的Link Master FieldsLink Child Fields属性来“同步”子报表数据与父记录。

假设您有[用户]表

userID
------
Gord
Tim

和[UserTraffic]表

userID  trafficDate downloadMB
------  ----------- ----------
Gord    2013-04-26  366
Gord    2013-04-25  442
Tim     2013-04-26  890
Tim     2013-04-25  212

您的主报告[UserReport]绑定到[Users]并包含基于报告的子报告控件[UserTraffic_subreport]

subreport1.png

在主窗体上的子窗体/子报表控件中使用该报表时...

mainreport.png

...务必设置Link Master FieldsLink Child Fields属性...

properties.png

...所以你的报告将会是这样的:

preview.png

请注意,此示例根本不需要任何VBA代码。

修改

向报表添加图表时适用相同的原则。以下报告按日期显示用户流量,因此主报告的记录源为

SELECT DISTINCT trafficDate FROM UserTraffic ORDER BY trafficDate;

报告使用Chart控件而不是Subform / Subreport控件...

design.png

...而Chart控件的属性是......

properties.png

结果报告如下所示

preview.png