Recordset Filter – Working With Recordset in VBA


Access Visual Basic Recordsets

One of the most powerful features of Microsoft Access is the ability to work with your data using recordsets in VBA.   Beside updating, appending, and deleting records in recordsets you can also display the recordsets on an associated form or report.  In this example we will demonstrate how to dynamically filter the records.

There are basically three techniques used to dynamically filter recordsets an Access Visual Basic where a continuous form is being used.

  • Filter recordset manually using the toolbar

  • Filter VB recordset using VBA with a text field or combo box

  • Use a parameter query that read the value of a text field or combo box to filter recordset

Our goal is to use the Store_Selection combo box to filter the records in the form.  These recordsets refer to sales and deliveries of bait to a store. Here we will show you how to dynamically filter a continuous recordset in Visual Basic on a form.  Below is the form with which we will be working:

access visual basic recordsets

We use the Visual Basic AfterUpdate trigger on the property sheet of the combo box.  (note:  there is a similar subroutine for the Year field).  Here is the VBA code:

Private Sub Store_Selection_AfterUpdate()

Forms![$mainmenu]![F_History_By_Store_Final].Form.Filter = & _
“Store_ID=” & Me.Store_Selection.Column(0) & _
” and year=” & Chr(34) & Me.Year_Selection & Chr(34)


End Sub

Whenever the user selects a new store number the form immediately displays the new filtered recordset.  You can add text boxes and combo boxes to filter on any combination of fields in the recordset.  The Chr(34) is my way of putting in the double quote marks for character variables.


Microsoft Office:
MS Access 2000 Through 2016 and Office 365 & Sharepoint


Microsoft Office VBA, MS Access 2003, 2007, 2010, 2013, 2016