Hide Sub Report(s) when records are null

  • Thread starter Thread starter Bruce
  • Start date Start date
B

Bruce

I am running Access 2007 sp2 MSO. I have a report that has three (3) sub
reports. There are times when not all three sub reports have values to
display. Is there a way to code the given report to not be visible if there
are no records to report? The second part of this question would be if there
is a way to make the report invisible is it also possible to code so that the
space where the report would normally reside would not be taken with a blank
space (the foot print of where the report normally resides)?
 
Part 1:
If the main report is bound to a table/query, you can just cancel its NoData
event.

If the main report is unbound (merely a holder for the 3 subreports), you
would need to write some code in the Open event of the report to DLookup()
the 3 source queries for the 3 subreports to see if you get anything. If you
don't, then cancel Report_Open.

Part 2:
Set the CanShrink property to Yes for the subreport control, and also for
the section that holds the subreport.

Provided there is nothing else overlapping the subreport's vertical space,
it will then shrink if it has no data.
 
You can use the HasData property of the sub-reports to control the visibility
of the sub-report control. In addition, you can set the can shrink property
of the section containing the sub-report control(s) to yes to recover the space.

John Spencer
Access MVP 2002-2005, 2007-2010
The Hilltop Institute
University of Maryland Baltimore County
 
John,

I cannot locate where I would use the HasData property of the sub-report. I
am aware of the can shrink property and have that set to yes (also have the
can grow property set to yes). I have looked at each line in the properties
window but cannot locate where I set the HasData property. In fact I typed in
HasData into the help menu and there were no results found. Could you please
give me a little more assistance?
 
Allen,

The main report is bound to a query. In fact the three (3) other sub-reports
are bound to the same query. I have the sub-report can shrink set to yes for
both the space it occupies and the report itself.
 
In the section of the report that has the subreport, you would need some VBA
code like the following in that sections format event

IF NameOfSubReportControl.HasData Then
NameOfSubReportControl.Visible = True
ELSE
NameOfSubReportControl.Visible = False
END IF

John Spencer
Access MVP 2002-2005, 2007-2010
The Hilltop Institute
University of Maryland Baltimore County
 
You can also do the following (I am using Access 2010)
If a Subreport needs to be hidden if there is no data to print add this line of code to the section it is in (probably Details)
Needs to be put into the OnPrint event and will only work when printed or print previewed so you can't use it when viewing in the new report view.

Me!SubReportControl.Visible = Me!SubReportControl.Report.HasData
 
Back
Top