Multiple Ways to Search Records in MS Access Forms — Part 1

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

  1. Open your form in Design View
  2. Make sure you’re working in a Continuous Form (so multiple records are visible at once)
  3. Click on the form header section — this is where the search control will live, above the records
  4. From the Form Design menu, select Combo Box and draw it in the header
  5. 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
  6. Choose the field you want to search by — a text field like Name, City, or Address works best
  7. 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:

  1. Select the combo box and open its Data properties
  2. Click the Row Source field — a small button appears at the right
  3. Click it to open the Query Builder
  4. Find the field being used for the search (e.g. Name or City)
  5. Set its Sort row to Ascending
  6. 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

  1. Add a combo box to your form header
  2. In the combo box properties, set Row Source Type to Value List
  3. In the Row Source field, type your fixed values — for example: Male;Female
  4. 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

  1. In Form Design View, go to the Form Design menu and select Option Group
  2. Draw it on the form header
  3. The Option Group Wizard walks you through it — enter your label names, e.g. All, Male, Female
  4. Set All as the default option (so the form shows all records when it first opens)
  5. 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:

MethodBest ForRequires Code?
Combo Box WizardFinding a specific record by name or field valueNo
Advanced Combo BoxSame as above, with auto-open drop-down and sorted listSmall amount
Value List Combo BoxFiltering by a fixed category (e.g. gender, status)Yes
Option GroupSame as above, with visible radio-button style controlsYes

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.