How to Refresh an Access Combo Box After Adding a New Record
Question details
The user needs a way to instantly refresh a combo box on an Access form so it displays newly added database records without having to restart the application.
- Product
- Microsoft Access
- Device & OS
- not provided
- Scenario
- A user adds a new member via a secondary Access form and expects the primary form's combo box to reflect this new entry immediately.
- Observed behavior
- The combo boxes on the initial form do not display the newly added member until the entire database is closed and reopened.
Ensure your combo box is correctly bound to the foreign-key field (such as MemberID) and identify which secondary form is used to insert the new records.
Use Dialog Mode and the AfterInsert Event
This method ensures the main form waits for the secondary entry form to close, automatically refreshing the combo box as soon as the new record is saved.
By opening the member entry form in Dialog mode, the VBA code execution on the main form is paused. Once the record is inserted and the dialog is closed, the system triggers the requery command to fetch the latest data.
This prevents the user from interacting with the main form while the entry is still being processed.
Create an 'Add Record' button on your main form. In the OnClick event, use VBA to open the second form in Dialog mode: DoCmd.OpenForm "MemberFormName", , , , , acDialog.
Open your secondary member form in Design View. Go to the Property Sheet, find the 'After Insert' event, and open the VBA builder.
Type the code to requery the combo box on the parent form: Forms!MainFormName!ComboBoxName.Requery.
To automatically select the newly added member, assign the new MemberID to the combo box: Forms!MainFormName!ComboBoxName = Me.MemberID.
Requery the Combo Box When the Form Regains Focus
Use this approach if you prefer to keep both forms open simultaneously and want the combo box to update when the user clicks back onto the main form.
Manage Data Easily with WPS Spreadsheet
While Microsoft Access is designed for complex relational databases, many data tracking and form-entry tasks can be handled more easily with WPS Spreadsheet. Enjoy a lightweight, highly compatible alternative for creating drop-down lists and managing daily records without complex VBA coding.
- 1. Select the Target Cell: Open WPS Spreadsheet and click on the cell where you want to place your drop-down list.
- 2. Open Data Validation: Navigate to the 'Data' tab on the top ribbon and click the 'Data Validation' button.
- 3. Configure the Drop-down List: Under the Settings tab, change the 'Allow' drop-down to 'List', and select the range of cells containing your member records in the 'Source' box.
- 4. Apply and Use: Click 'OK'. Whenever you add a new member to your source range, the drop-down list will update automatically without requiring VBA code.

Frequently Asked Questions
Why doesn't my Access combo box update automatically when a record is added?
Access combo boxes load their underlying data when the form first opens. If table data is modified via a different form, the combo box does not automatically detect the change until a Requery command tells it to fetch the latest records.
What is the Requery method in Access VBA?
The Requery method forces a specific form control (like a combo box or list box) or an entire form to recalculate or reload its data source, ensuring it displays the most current information stored in the database tables.
Can I use Access Macros instead of VBA to requery a combo box?
Yes. You can attach a macro to the form's AfterInsert or OnGotFocus event. Add the 'Requery' action within the Macro Builder and type the exact name of the combo box control in the Control Name argument box.
How do I make the combo box auto-select the item I just created?
After issuing the Requery command in your VBA code, you must set the combo box value equal to the new primary key of the inserted record (e.g., Forms!MainForm!ComboBox = Me.NewRecordID).




