End With ' for the me part
With Me.Sub_frm_Search.Form
.Filter = vFilter
.FilterOn = True
Debug.Print vFilter
End With
Private Function FilterSub()
'MajP
Dim sFilter As String
Dim ctrl As Access.Control
For Each ctrl In Me.Controls
If ctrl.ControlType = acCheckBox And ctrl.Tag <> "" Then
If ctrl.Value = True Then
If sFilter = "" Then
sFilter = "CRN like " & ctrl.Tag
Else
sFilter = sFilter & " OR CRN Like " & ctrl.Tag
End If
End If
End If
Next ctrl
With Me.Sub_frm_Search.Form
.Filter = sFilter
.FilterOn = True
Debug.Print sFilter
End With
End Function
Private Sub Form_Load()
'add this
FilterSub
End Sub
Private Function FilterSub()
'MajP
Dim sFilter As String
Dim ctrl As Access.Control
For Each ctrl In Me.Controls
If ctrl.ControlType = acCheckBox And ctrl.Tag <> "" Then
If ctrl.Value = True Then
If sFilter = "" Then
sFilter = "CRN like " & ctrl.Tag
Else
sFilter = sFilter & " OR CRN Like " & ctrl.Tag
End If
End If
End If
Next ctrl
'If nothing selected then make a bogus filter
If sFilter = "" Then sFilter = "TRUE = FALSE"
With Me.Sub_frm_Search.Form
.Filter = sFilter
.FilterOn = True
Debug.Print sFilter
End With
End Function
Private Sub cmdSelectAll_Click()
Dim ctrl As Access.Control
For Each ctrl In Me.Controls
If ctrl.ControlType = acCheckBox And ctrl.Tag <> "" Then
ctrl = True
End If
Next ctrl
FilterSub
End Sub
Private Sub cmdDeSelectAll_Click()
Dim ctrl As Access.Control
For Each ctrl In Me.Controls
If ctrl.ControlType = acCheckBox And ctrl.Tag <> "" Then
ctrl = False
End If
Next ctrl
FilterSub
Private Sub Form_Load()
FilterSub
End Sub
Private Function FilterSub()
'MajP
Dim sFilter As String
sFilter = GetFilter
With Me.Sub_frm_Search.Form
.Filter = sFilter
.FilterOn = True
Debug.Print sFilter
End With
End Function
Private Function GetFilter() As String
Dim sFilter As String
Dim ctrl As Access.Control
For Each ctrl In Me.Controls
If ctrl.ControlType = acCheckBox And ctrl.Tag <> "" Then
If ctrl.Value = True Then
If sFilter = "" Then
sFilter = "CRN like " & ctrl.Tag
Else
sFilter = sFilter & " OR CRN Like " & ctrl.Tag
End If
End If
End If
Next ctrl
'If nothing selected then make a bogus filter
If sFilter = "" Then sFilter = "TRUE = FALSE"
GetFilter = sFilter
End Function
Private Sub cmdPreviewReportcbo_Click()
DoCmd.OpenReport "rpt_All_municipalities", acViewPreview, , GetFilter()
End Sub
Loop your checkboxes again like in the filter.
MajP can you recommend any reading materials/ebook about access and vba?