How to Refresh an Access Combo Box Without Reopening MS Access
Question details
The user needs newly added records in a Microsoft Access table to immediately appear in a form's combo box without having to restart the application.

- Product
- Microsoft Access
- Device & OS
- not provided
- Scenario
- Adding new records to an Access database table via a form that need to be immediately selectable in a dropdown combo box.
- Observed behavior
- The combo box does not display the newly added records until the Microsoft Access database is completely closed and reopened.
Ensure you have a backup of your MS Access database before modifying form properties or adding VBA code. Verify that your combo box is bound to a unique primary key (like MemberID) rather than a simple text name to prevent duplication errors.
Use an Add Button and the AfterInsert Event
This is the most robust method to add new records via a dialog form and instantly update the combo box using VBA.
By opening a data entry form in dialog mode, code execution on the main form is paused until the new record is saved. The combo box is then refreshed immediately.
Add a command button next to the combo box on your main form. Set its On Click event to open your data entry form (e.g., frmMembers) using DataMode:=acFormAdd and WindowMode:=acDialog.
Open the properties of your data entry form in Design View and navigate to the 'AfterInsert' event.
Open the VBA editor and instruct the main form to requery the combo box: Forms("frmMain").cboYourComboBox.Requery.
In the same AfterInsert event block, assign the newly generated primary key to the combo box so it is automatically selected: Forms("frmMain").cboYourComboBox = Me.NewID.
Utilize the NotInList Event
Allows users to type a new entry directly into the combo box and automatically triggers a prompt to add it to the underlying table.
Requery on Form Focus or AfterUpdate
A simpler approach that refreshes the combo box whenever the main form regains focus or after a record is updated.
Discover WPS Office: A Lightweight Microsoft Office Alternative
While Microsoft Access handles complex relational databases, for everyday data management, list tracking, and dynamic dropdown menus, WPS Spreadsheet offers a lightweight, completely free, and highly compatible alternative. You can easily manage large datasets and apply data validation without needing complex VBA code.
- 1. Download WPS Office: Visit the official WPS website to download and install the free WPS Office suite on your device.
- 2. Open Your Data Lists: Launch WPS Spreadsheet and easily import your existing Excel or CSV data tables.
- 3. Create Dynamic Dropdowns: Navigate to the Data tab and use the Data Validation feature to create dropdown menus that instantly update as you add new list items.

Frequently Asked Questions
What is the difference between Requery and Refresh in MS Access?
The 'Requery' method re-runs the underlying query or table attached to a control (like a combo box), bringing in newly added records and removing deleted ones. The 'Refresh' method only updates the data in existing records that are currently displayed, but it does not add new records to the list.
Why does my NotInList event fail to update the combo box?
This usually happens if the 'Limit to List' property is not set to Yes, or if your VBA code does not explicitly return the response constant 'Response = acDataErrAdded'. Returning this constant is mandatory to instruct Access to seamlessly requery the list after data entry.
Can I bind a combo box to a text name instead of a numeric ID?
While possible, it is highly discouraged in relational database design. Text names are not unique (e.g., two people named John Smith). You should always bind the combo box to a unique primary key (like MemberID) and adjust the column widths (e.g., 0";1.5") so the ID is hidden from the user while the name remains visible.




