If you try to sum a subform field by using a calculated control on a main
form, you may receive an error message in the main form control. For
example, the following expression in a main form control generates a
"#Name?" error message:
=Sum([MySubForm].Form![ExtendedPrice])
To avoid an error, you can sum the subform field by using a calculated
control in the subform's form footer. You can then reference the
calculated control from the main form to display the summed value.
There's an example of this method in the Orders form of the Northwind sample database. First, a calculated control in the footer of the Orders Subform sums the subform's Extended Price field to create a subtotal. It uses the following syntax:
Text Box Control
----------------
Name: OrderSubtotal
ControlSource: =Sum([ExtendedPrice])
Because the subform's
DefaultView property is set to Datasheet, you do not see the calculated control in the subform's form footer when you open the Orders form in Form view. However, a text box control on the main Orders form refers to the subform's calculated control and gets its value to display. The main form control is called Subtotal and references the subform's calculated control. It uses the following syntax:
Text Box Control
----------------
Name: Subtotal
ControlSource: =[Orders Subform].[Form]![OrderSubtotal]
This reference allows the main form to display a subtotal of a subform
control while the actual totaling of subform values is performed by using a
calculated control in the subform's form footer.