VB Recordset Filter for Dynamic Recorsets
There are basically three techniques used to dynamically filter
an Access Visual Basic recordset that is continuous on a form.
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
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:
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. 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)
Form_F_History_By_Store_Final.Form.FilterOn=True
End Sub
Whenever the user selects a new store number the form immediately displays the new filtered record set. 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.