将查询参数传递给子报告

Chi*_*ago 4 ms-access ms-access-2007 access-vba

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

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

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

我不知道如何实现这一点,或者即使我的方法是合理的.

(ps我最初发布在"超级用户"上,但看到没有多少人使用该网站.)

谢谢您的帮助

Gor*_*son 10

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

假设您有[用户]表

userID
------
Gord
Tim
Run Code Online (Sandbox Code Playgroud)

和[UserTraffic]表

userID  trafficDate downloadMB
------  ----------- ----------
Gord    2013-04-26  366
Gord    2013-04-25  442
Tim     2013-04-26  890
Tim     2013-04-25  212
Run Code Online (Sandbox Code Playgroud)

您的主报表[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;
Run Code Online (Sandbox Code Playgroud)

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

design.png

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

properties.png

结果报告看起来像这样

preview.png