Passing Query Parameter to Sub-Report

ms-access, ms-access-2007, vba

Solution

To get the full benefit of subreports they should be bound to a recordsource (table or query) and use the `Link Master Fields` and `Link Child Fields` properties of the Subform/Subreport control to "sync" the subreport data with the parent record.

Say you have a [Users] table

userID
------
Gord
Tim

and a [UserTraffic] table

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

Your main report [UserReport] is bound to [Users] and contains a subreport control based on the report [UserTraffic_subreport]

When you use that report in your Subform/Subreport control on your main form...

...be sure to set the `Link Master Fields` and `Link Child Fields` properties...

...so your report will come out like this:

Note that this example required no VBA code at all.

Edit

The same principles apply when adding a chart to a report. The following report displays user traffic by date, so the Record Source for the main report is

SELECT DISTINCT trafficDate FROM UserTraffic ORDER BY trafficDate;

The report uses a Chart control instead of the Subform/Subreport control...

...and the properties of the Chart control are...

The resulting report looks like this

Problem

It has been a long time since I have worked with MS Access and am not sure if I am doing this right. I have a Report bound to a query of single list of user names. The report groups on the user name and has a sub-report in the detail that is a chart. The sub-report/chart is based on a query that accepts a parameter of the user name. Since the sub report is not bound I need to pass the user name parameter from the main report detail onload event down to the sub-report and thus into the underlying query. I am not understanding how to make that happen or even if my approach is sound. (p.s. i originally posted on "Super User" but see not many people use that site.) Thanks for the help

Original source