Notice: This website is an unofficial Microsoft Knowledge Base (hereinafter KB) archive and is intended to provide a reliable access to deleted content from Microsoft KB. All KB articles are owned by Microsoft Corporation. Read full disclaimer for more details.

ACC2000: "#ERROR" Message When Referencing Subreport Controls


View products that this article applies to.

This article was previously published under Q208718
Moderate: Requires basic macro, coding, and interoperability skills.

For a Microsoft Access 2002 version of this article, see 288251 (http://support.microsoft.com/kb/288251/EN-US/).

↑ Back to the top


Symptoms

This article applies to a Microsoft Access database (.mdb) and to a Microsoft Access project (.adp).

If you reference a subreport control from a main report when the subreport does not return any matching records, you may receive the following message
#ERROR
for the referenced subreport control.

NOTE: This article explains a technique demonstrated in the sample files, RptSmp00.exe. For information about how to obtain these sample files, please see the following articles in the Microsoft Knowledge Base:
231851 ACC2000: Microsoft Access 2000 Sample Reports Available in Download Center

↑ Back to the top


Cause

When the subreport has no data, it is not available. Referencing an empty subreport results in an invalid operation.

↑ Back to the top


Resolution

Make sure that subreport fields referenced in a main report contain data by adding a function to test for this condition. See the "Steps to Reproduce Behavior" and "Steps to Work Around Behavior" sections later in this article for an example of such a function.

↑ Back to the top


More information

Steps to Reproduce Behavior

1.Start Microsoft Access and open the sample database Northwind.mdb.
2.Create the following query based on the Customers table:
   Query: Sorter
   -------------------
   Type: Select Query

   Field: CompanyName
   Criteria: Like "P*"

   Field: CustomerID
						
Save the query as Sorter. Note that this query limits the recordset only to customer records beginning with the letter "P" and includes a customer with no orders.
3.Create a new report based on the Orders table and name it SubRpt.
4.Drag the Freight field to the detail section of the subreport. In the report footer section, add a text box and set the control's properties as follows:
   ControlSource: =Sum([Freight])
   ControlName: TotFreight
						
The subreport prints the detailed freight items with a grand total for all freight charges.
5.Create a new report based on the Sorter query and name it Main Report.
6.On the View menu, click Sorting And Grouping. Click CompanyName under the Field/Expression box, and then set the GroupHeader property and the GroupFooter property to Yes.
7.Drag the CompanyName field to the new CompanyName header section.
8.Drag the SubRpt subreport from the Database window to the detail section of Main Report.
9.Add a text box to the CompanyName footer, and then set its ControlSource property to =([SubRpt].[Report]![TotFreight]). Set the Caption property of the label as Total Order Amount Per Customer.
10.Set both the LinkMasterFields and the LinkChildFields properties for the subreport control to CustomerID. Setting these properties filters the subreport to display the Freight charges for each customer.
11.Preview the report. Note that "#ERROR" is displayed for the references to the subreport control for Paris Specialties, which has no orders.

Steps to Work Around Behavior

To test that subreport fields referenced in a main report contain data, follow these steps:
1.Replace the line
   =([SubRpt].[Report]![TotFreight])
						
in step 9 above with the following line:
   =IIF([SubRpt].Report.HasData=True, [SubRpt].Report![TotFreight], 0)
					
2.Preview the report.
Note that a zero value is displayed for Paris Specialties instead of the "#ERROR" message. The HasData property of the subreport returns True or False. You can use this property to eliminate the "#ERROR" message by returning a zero if the HasData property returns a False.

↑ Back to the top


References

For more information about the HasData property, click Microsoft Access Help on the Help menu, type HasData property in the Office Assistant or the Answer Wizard, and then click Search to view the topic.

↑ Back to the top


Keywords: KB208718, kbprb, kberrmsg

↑ Back to the top

Article Info
Article ID : 208718
Revision : 2
Created on : 6/24/2004
Published on : 6/24/2004
Exists online : False
Views : 343