VBA MS Access Form Filter Example

This post is going to show you a ms access form filter sample.

The database I created only has one table called “Categories”.

We are going to have a form called “frmCategory”.

ms_access_form_filter_example_create_form

The form is going to be a “Split Form”, because that seems to be quicker than the “main form / sub form” setup.

The “Datasheet on Bottom” setting is set giving it this effect. Having this format, gives us this effect:

ms_access_form_filter_example_after_split_form

These are the settings for the “Split Form”

ms_access_form_filter_example_settings1

ms_access_form_filter_example_settings2

I reordered my fields so I can filter better (here is how it looks):

ms_access_form_filter_example_field_reorder

Here is my form all together:

ms_access_form_filter_example_after_update

…and here is my code:

Option Compare Database

Private m_Where As String

Private Sub btnReset_Click()
    Me.FilterOn = False
    
    'clear all the variables
    m_Where = ""
    Me.cboDescription = ""
    Me.cboIncomeExpense = ""
    Me.chkTax = 0
        
    
End Sub

Private Sub cboDescription_AfterUpdate()
    

    m_Where = m_Where & " AND Description = '" & Me.cboDescription & "'"
    FilterThis
    
End Sub

Private Sub cboIncomeExpense_AfterUpdate()
    
    m_Where = m_Where & " AND [Income/Expense] = '" & Me.cboIncomeExpense & "'"
    FilterThis
End Sub
Private Sub chkTax_AfterUpdate()
    m_Where = m_Where & " AND [Taxable] = " & Me.chkTax
    FilterThis
End Sub

Sub FilterThis()
    
    'clean the string first
    If Left(m_Where, 4) = " AND" Then
        m_Where = Mid(m_Where, 5)
    End If
    
    Me.Filter = m_Where
    Me.FilterOn = True
    
End Sub

The variable “m_Where” is where the filter string is stored, and has modular level scope, so the value persists while the form is open.

Let me know if you have any questions.




By the way, if you got or are getting value from the VBA information, please give me a tip, thanks!


These posts may help answer your question too...

How To Make An Access Form Time Picker

Here is a relatively easy way to select times for your time entry text boxes. It’s a reusable form that allows you to pick a time from an Access form. There are probably different ways to do this but here is the way I would do it. On the form that has the time fields, […]

How to pick a file to load In VBA

Picking a file to load in your Microsoft App is a very important skill to know. In this blog post you will see how to do it. First you need to set a reference to the MS office object library From VBE editor –> select Tools > MS office object library (click check mark) Sub […]

What is the purpose of the Me keyword in Access VBA?

What does the Me keyword mean? “Me” refers to the Access form currently in focus. Instead of writing out the entire form reference, you can just use the keyword “Me” which is easier. Like: Me.txtbox = “I am a textbox on the form that currently has the focus.” or you can update a label’s caption […]

How do I run VBA code when form opens

How do I run VBA code when form opens? There are probably several ways people do it, and some may say “He’s not doing it right. It’s done this way…” Good for you. This is the way I do it now, and it has worked well for me. 1. Find the form you want to […]

Previous Post

Access Database Users And Permissions Example

Next Post

MS Access Object Security