Hi all,
I am a very basic VBA user who has filled out some code for a continuous form multiple filter.
The code is working quite happily.
However, and this is more for my education, I'm sure the coding could be smaller and more efficient, but I don't know how!
So I was wondering if anyone might be able to help me minimize the coding in my sub please?
Many thanks in advance,
Nick
I am a very basic VBA user who has filled out some code for a continuous form multiple filter.
The code is working quite happily.
However, and this is more for my education, I'm sure the coding could be smaller and more efficient, but I don't know how!
So I was wondering if anyone might be able to help me minimize the coding in my sub please?
Code:
Private Sub DoFilter()
If IsNull(Me.cboPeriodSelect) And IsNull(Me.cboCategorySelect) Then
Me.Filter = "bcr_b_ir =" & cboBrandSelect
Me.FilterOn = True
Me.Refresh
Else
If IsNull(Me.cboBrandSelect) And IsNull(Me.cboCategorySelect) Then
Me.Filter = "bcr_np_ir =" & cboPeriodSelect
Me.FilterOn = True
Me.Refresh
Else
If IsNull(Me.cboBrandSelect) And IsNull(Me.cboPeriodSelect) Then
Me.Filter = "bcr_sc_ir =" & cboCategorySelect
Me.FilterOn = True
Me.Refresh
Else
If IsNull(Me.cboBrandSelect) Then
Me.Filter = "bcr_sc_ir =" & cboCategorySelect & "AND bcr_np_ir =" & cboPeriodSelect
Me.FilterOn = True
Me.Refresh
Else
If IsNull(Me.cboPeriodSelect) Then
Me.Filter = "bcr_sc_ir =" & cboCategorySelect & "AND bcr_b_ir =" & cboBrandSelect
Me.FilterOn = True
Me.Refresh
Else
If IsNull(Me.cboCategorySelect) Then
Me.Filter = "bcr_np_ir =" & cboPeriodSelect & "AND bcr_b_ir =" & cboBrandSelect
Me.FilterOn = True
Me.Refresh
Else
Me.Filter = "bcr_np_ir =" & cboPeriodSelect & "AND bcr_b_ir =" & cboBrandSelect & "AND bcr_sc_ir =" & cboCategorySelect
Me.FilterOn = True
Me.Refresh
End If
End If
End If
End If
End If
End If
End Sub
Many thanks in advance,
Nick