How to Find an Access Record Using Multiple Combo Box Values
Question details
The user needs to locate a specific record or filter a table dynamically by combining the selected criteria from multiple combo boxes on a form.

- Product
- Microsoft Access
- Device & OS
- not provided
- Scenario
- Filtering records or querying a database using input from multiple unbound combo boxes on an Access form.
- Observed behavior
- The combined value from the form's combo boxes cannot be successfully used to locate the matching record or filter the target table.
Verify that your combo box controls are properly named in the Property Sheet (e.g., cboCity, cboEmployer) and back up your database before altering form queries or VBA code.
Use a Query to Reference Combo Boxes as Parameters
Reference open form controls directly in your query's WHERE clause to filter records dynamically based on combo box selections.
This method links your query criteria directly to the form controls. By adding IS NULL handling, you ensure that if a combo box is left blank, the query will still return results without filtering by that specific parameter.
Open your Access database, locate the query you want to use for filtering the form or report, and open it in SQL View or Design View.
In the WHERE clause, reference your form's combo box using the syntax Forms!FormName!ControlName. For example: Forms!frmReportDialogue!cboCity.
Wrap the condition to allow empty selections: WHERE (Cities.CityID = Forms!frmReportDialogue!cboCity OR Forms!frmReportDialogue!cboCity IS NULL).
For another field, add a similar condition using the AND operator so each parameter works alone or combined.
Open your form in Design View, select the combo box, navigate to the Event tab in the Property Sheet, and add Me.Requery to the 'After Update' event.
Concatenate Combo Box Values into a Hidden Text Box
Combine partial codes from multiple combo boxes into a single hidden text box to use as a unified search criterion.
Apply a Filter Using a Search Button and VBA
Add a custom search button that uses VBA code to read the combo box inputs, construct a filter string, and apply it to the form.
Need a Lightweight Alternative to Complex Databases? Try WPS Office
While Microsoft Access is powerful for complex relational databases, managing lists, forms, and filtered records can often be done more easily in a robust spreadsheet environment. WPS Office offers a free, lightweight suite with highly compatible Spreadsheet software, perfect for organizing and filtering data without complex SQL queries or VBA.

Frequently Asked Questions
Why does my Access query return no results when one combo box is empty?
By default, if a combo box is empty, Access treats it as a NULL value. If your query uses a strict equals (=) condition without handling NULLs, it searches for records where the field is literally NULL, yielding no results. Use the 'OR [ControlName] IS NULL' syntax in your query criteria so empty combo boxes are ignored.
Does using LIKE and wildcards in Access affect performance?
Yes, using the LIKE operator with wildcards (such as *) can significantly reduce database performance, especially on large tables. This is because Access cannot effectively use table indexes for partial string matches, forcing it to scan the entire table to find matching records.
How do I automatically refresh the form data after changing a combo box value?
You need to requery the form. Open the form in Design View, select the combo box, and go to the Event tab in the Property Sheet. In the 'After Update' event, choose Code Builder and type 'Me.Requery'. This forces the form to refresh its data based on the newly selected value immediately.




