One of the most common things users need to do in a database is find a specific record. And while scrolling through a form one by one works for a handful of records, it falls apart the moment your database grows to hundreds or thousands of rows.
MS Access gives you multiple ways to build search functionality directly into your forms — without relying on the basic Find dialog that most users ignore anyway. This guide covers the methods taught in the Skill Header tutorial “Multiple Ways to Search Records in MS Access Form Part 1,” walking through three practical approaches from simplest to most polished.
Why Build Search Into Your Form?
The default Access navigation — clicking through records with the arrows at the bottom — is fine for exploring data casually. But when someone needs to pull up a specific employee, customer, or order, they shouldn’t have to scroll through every record to find it.
Building search controls directly into your form solves this. The user types a name, picks from a list, or clicks a button — and the form jumps straight to the matching record or filters down to just the results they need. It’s a small addition that makes a huge difference to how usable your database actually feels.
Method 1: Combo Box Search Using the Wizard (No Code)
This is the fastest way to add a working search to any form — and it requires zero VBA code. Access has a built-in Combo Box option specifically designed for finding records.
How to set it up
- Open your form in Design View
- Make sure you’re working in a Continuous Form (so multiple records are visible at once)
- Click on the form header section — this is where the search control will live, above the records
- From the Form Design menu, select Combo Box and draw it in the header
- The Combo Box Wizard appears — select the option “Find a record on my form based on the value I selected in my combo box” and click Next
- Choose the field you want to search by — a text field like Name, City, or Address works best
- Leave “Hide Key Column” selected, give the combo box a label, and click Finish
That’s it. Switch to Form View and try it — select a name from the drop-down and the form navigates directly to that record instantly.
Using it to search by typing
Here’s a bonus that many people don’t realise: this same combo box also works as a type-ahead search. Instead of opening the drop-down, just start typing a name directly into the combo box field. Access narrows down the list as you type and jumps to the matching record when you select it.
This makes it work like a quick search bar — no clicking required.
Method 2: Advanced Combo Box with Auto-Open Drop-Down
The basic wizard combo box works well, but it has one small friction point: users have to click the arrow to open the drop-down list before they can pick from it. With a small piece of VBA code, you can make the drop-down open automatically the moment a user starts typing — which feels much more like a modern search experience.
Making the drop-down open automatically while typing
Select the combo box, open its On Key Down event in the property sheet, and add this code:
vba
Private Sub Search1_KeyDown(KeyCode As Integer, Shift As Integer)
Me.Search1.Dropdown
Me.Search1.SetFocus
End Sub
Now as soon as the user presses any key in the combo box, the drop-down list opens automatically — showing all the available options while they type. The list narrows as they continue typing, making it easy to find exactly what they need with minimal effort.
Sorting the list in ascending order
By default, the combo box list shows records in the order they appear in the table — which is often not alphabetical. To fix this:
- Select the combo box and open its Data properties
- Click the Row Source field — a small button appears at the right
- Click it to open the Query Builder
- Find the field being used for the search (e.g. Name or City)
- Set its Sort row to Ascending
- Save and close
Now the list always displays in alphabetical order — much easier to browse and much more professional looking.
Method 3: Searching by Manual Values — Combo Box Drop-Down
The first two methods are for searching through field values from your table — finding a specific person, place, or item. But sometimes you want to filter records by a fixed set of values that you define yourself — like filtering employees by gender, status, or department.
For this, you use a combo box with a Value List as the row source — meaning the options are ones you type in yourself, not pulled from the table.
How to set it up
- Add a combo box to your form header
- In the combo box properties, set Row Source Type to Value List
- In the Row Source field, type your fixed values — for example:
Male;Female - Add a VBA code to the After Update event of the combo box:
vba
Private Sub Search3_AfterUpdate()
Dim strGenderFind As String
strGenderFind = "[Gender]= '" & Me.Search3 & "'"
Me.Form.Filter = strGenderFind
Me.Form.FilterOn = True
End Sub
When the user picks “Male” or “Female” from the drop-down, the form instantly filters to show only records matching that value. Everything else disappears until the filter is cleared.
This approach works for any fixed set of categories — status labels, departments, regions, yes/no fields, or anything else where the options are known in advance and don’t change.
Method 4: Option Group — The Cleaner Alternative
If your manual value list has just a few options (like All, Male, Female), there’s an even cleaner approach: the Option Group. Instead of a drop-down, the user sees clearly labelled radio buttons directly on the form — no clicking to open a list, no ambiguity about what’s available.
How to set it up
- In Form Design View, go to the Form Design menu and select Option Group
- Draw it on the form header
- The Option Group Wizard walks you through it — enter your label names, e.g. All, Male, Female
- Set All as the default option (so the form shows all records when it first opens)
- Finish the wizard
Now add the VBA code to the On Click event of the Option Group frame:
vba
Private Sub Search4_Click()
If Me.Search4 = 1 Then
Me.Form.FilterOn = False
Else
If Me.Search4 = 2 Then
strGenderFind = "[Gender]= 'Male'"
Me.Form.Filter = strGenderFind
Me.Form.FilterOn = True
Else
If Me.Search4 = 3 Then
strGenderFind = "[Gender]= 'Female'"
Me.Form.Filter = strGenderFind
Me.Form.FilterOn = True
End If
End If
End If
End Sub
Each option group button is assigned a number internally (1, 2, 3 in order). The code checks which button was clicked and either clears the filter (All = option 1) or applies the right filter for Male or Female.
The All option is important — it sets FilterOn = False, which removes the filter entirely and shows every record again. Without it, users would have no way to reset the search.
Why Option Group beats Combo Box for fixed values
The option group puts all choices in plain sight on the form — users can see every option at a glance and click directly on the one they want. There’s nothing to open, nothing to scroll through. For small, fixed sets of values it’s simply more intuitive and more pleasant to use than a drop-down.
Which Method Should You Use?
Each of these methods suits a different situation:
| Method | Best For | Requires Code? |
|---|---|---|
| Combo Box Wizard | Finding a specific record by name or field value | No |
| Advanced Combo Box | Same as above, with auto-open drop-down and sorted list | Small amount |
| Value List Combo Box | Filtering by a fixed category (e.g. gender, status) | Yes |
| Option Group | Same as above, with visible radio-button style controls | Yes |
For most forms, you’ll end up using a combination — a combo box at the top for finding specific records, and an option group or value list filter for narrowing down by category. Together they cover almost every search scenario a typical database user will need.
What’s Coming in Part 2
This is Part 1 of the series, covering text-based and category searches. Part 2 goes further — covering how to search by numeric values with greater-than and less-than filters, how to search between two dates, and additional advanced filter techniques. Keep an eye out for the follow-up post.
Watch the full tutorial on YouTube: Multiple Ways to Search Records in MS Access Form Part 1 by Skill Header, and download the practice files at skillheader.com.


