Others

How to Requery an Access Subform After Updating a Main Form Field

Elise WilliamsElise Williams Oct 28, 2026 869 views

Question details

The user needs a Microsoft Access subform to automatically update its displayed records immediately after a specific field on the main form is changed.

How to Requery an Access Subform After Updating a Main Form Field
Product
Microsoft Access
Device & OS
not provided
Scenario
A parameter query in a subform uses a main form field as a criterion, but changing the main form field does not dynamically trigger the subform to display the new dataset.
Observed behavior
The subform does not update upon changing the main form field. Even after applying Requery, Refresh, and saving the record, the user must navigate away from the current record and return to see the updated results.
Before you start

Verify the exact name of your subform control on the main form, as targeting the incorrect control name is a common reason for Requery failures in MS Access VBA.

Solution 1Recommended

Use VBA in the After Update Event to Force a Recalculation and Requery

This solution forces the main form to save its current state and recalculate before explicitly requerying the subform control via VBA.

Often, simply calling 'Requery' does not work if the main record hasn't been saved or if Access hasn't recognized the new field value. By saving the record, recalculating, and targeting the subform control (rather than the form object), the subform will update instantly.

1
Open Form Design View

Open your main form in Design View. Right-click the field (e.g., SerNo) that acts as the criterion and select 'Properties'.

2
Add After Update Event Procedure

In the Property Sheet, go to the 'Event' tab. Find the 'After Update' property, select '[Event Procedure]' from the dropdown, and click the ellipsis (...) to open the VBA editor.

3
Insert Requery VBA Code

Input the following code: 'Me.Dirty = False' (to save the record), followed by 'Me.Recalc' (to force Access to recognize the new value), and finally 'Me!YourSubformControlName.Requery' (replacing YourSubformControlName with your actual subform control name).

4
Save and Test

Save the VBA module, switch the form back to Form View, and update the main form field to verify the subform refreshes automatically.

Use VBA in the After Update Event to Force a Recalculation and Requery
Control Name vs. Form Name: Ensure you are using the name of the subform control on the main form, which may be different from the actual name of the subform in your navigation pane.
Free Microsoft Office alternative

Looking for a Lightweight Office Solution?

While Microsoft Access is a traditional database tool, many data tracking, reporting, and management tasks can be handled efficiently using advanced spreadsheets. WPS Office provides a powerful, highly compatible, and completely free alternative for your daily document, spreadsheet, and presentation tasks.

  1. 1. Download the Installer: Visit the WPS Office website and download the free installation package tailored to your operating system.
  2. 2. Install WPS Office: Run the downloaded installer and follow the quick setup wizard to install the suite on your device.
  3. 3. Open Your Office Files: Launch WPS Office and instantly open your existing Word documents, Excel spreadsheets, and PowerPoint presentations with full compatibility.
Seamlessly open, edit, and save Microsoft Excel (.xlsx) formatsLightweight installation that runs fast even on older hardwareFamiliar tabbed user interface ensures a zero-learning-curve migrationIncludes a built-in suite of free PDF editing tools
microsoft office alternative - wps office

Frequently Asked Questions

Why does Me.Refresh not update my Access subform records?

The Refresh method only updates the data currently displayed in existing records to reflect changes made by other users. It does not re-run the underlying query to fetch new records, remove deleted records, or apply new filter criteria. You must use Requery to re-evaluate parameters.

How do I find the correct name of my subform control?

Open your main form in Design View. Click once on the border of the subform container (do not click inside it). Open the Property Sheet, navigate to the 'Other' tab, and look at the 'Name' property. This is the control name you must use in your VBA code.

What is the difference between Me.SubformControl.Form.Requery and Me.SubformControl.Requery?

Calling '.Requery' directly on the subform control re-evaluates the control's data container on the main form, which is highly effective when main form parameters change. Calling '.Form.Requery' targets the form object nested inside the control. Usually, requerying the control is more reliable for resolving parameter updates.