Private Sub OptionsSet()
 
    Dim strSQLlbx As String ' A SQL Statement for the ListBox.
    Dim strWhere As String ' To build final "Where" Statement
    Dim strWherechk As String ' To filter using the CheckBoxes
 
    ' This is one way you can build a SQL "Where" Statement
    If Me.chkBusiness = True Then
        strWherechk = strWherechk & ",'Business'"
    End If
 
    If Me.chkHolidays = True Then
        strWherechk = strWherechk & ",'Holiday'"
    End If
 
    If Me.chkOther = True Then
        strWherechk = strWherechk & ",'Other'"
    End If
 
    If Me.chkPersonal = True Then
        strWherechk = strWherechk & ",'Personal'"
    End If
 
    ' If the first part of strWherechk is a comma: ,
    ' We know that strWherechk has a value to use
    If Left(strWherechk, 1) = "," Then
 
        ' Remove the comma: ,
        strWherechk = Right(strWherechk, Len(strWherechk) - 1)
 
        ' Add the beginning part of the Where Statement
        strWherechk = "AND Categories Not In (" & strWherechk
 
        ' Add the end part of the Where Statement
        strWherechk = strWherechk & ")"
    Else
        ' If the , was not added to strWherechk then
        ' No value was there--clear strWherechk
        strWherechk = vbNullString
    End If
 
    ' Add the dates that were selected to another "Where" Statement
    strWhere = " WHERE ((tblAppointments.ApptDate)" & _
        " >= [Forms]![frmDBApptDialog]![txtStartDate])" & _
        " AND ((tblAppointments.EndDate)" & _
        "<=[Forms]![frmDBApptDialog]![txtEndDate])"
 
    ' Put together both of the "Where" Statements.
    strWhere = strWhere & strWherechk
 
    ' Build the entire SQL Statement
    strSQLlbx = "SELECT tblAppointments.ApptmntID," & _
        " tblAppointments.Appt, tblAppointments.ApptDate," & _
        " tblAppointments.EndDate, tblAppointments.Categories" & _
        " FROM tblAppointments" & _
        strWhere & _
        " ORDER BY tblAppointments.ApptDate DESC;"
 
    ' Set the ListBox's RowSource to show the Appointments
    Me.lstAppointments.RowSource = strSQLlbx
 
    ' Requery the ListBox to update the data
    Me.lstAppointments.Requery
 
End Sub

 
Private Sub tglSelectAll_AfterUpdate()
 
    ' Declare a Variable to use to select Appointments
    Dim i As Integer
 
    ' If clicked select all of the Appointments
    If Me.tglSelectAll = True Then
 
        ' Get a range for the Loop
        ' ListCount gives us the total number of Appointments.
        For i = 1 To lstAppointments.ListCount
            lstAppointments.Selected(i) = True
        Next i
 
        'Change the Toggle Button Caption to Deselect
        Me.tglSelectAll.Caption = "Deselect All"
    Else
 
        For i = 1 To lstAppointments.ListCount
            lstAppointments.Selected(i) = False
        Next i
 
        Me.tglSelectAll.Caption = "Select All"
    End If
 
End Sub

 
 
Private Sub chkBusiness_AfterUpdate()
    If Len(Me.txtDateSelection & vbNullString) > 0 Then
        OptionsSet
    End If
End Sub

 
Private Sub chkHolidays_AfterUpdate()
    If Len(Me.txtDateSelection & vbNullString) > 0 Then
        OptionsSet
    End If
End Sub

 
Private Sub chkOther_AfterUpdate()
    If Len(Me.txtDateSelection & vbNullString) > 0 Then
        OptionsSet
    End If
End Sub

 
Private Sub chkPersonal_AfterUpdate()
    If Len(Me.txtDateSelection & vbNullString) > 0 Then
        OptionsSet
    End If
End Sub