A family of Microsoft relational database management systems designed for ease of use.
Personally I'd adopt a different approach, and base the form on a query which references the unbound controls as parameters in its WHERE clause:
WHERE (Course = Forms!YourForm!cboCourse
OR Forms!YourForm!cboCourse IS NULL)
AND (Location = Forms!YourForm!cboLocation
OR Forms!YourForm!cboLocation IS NULL)
AND ((AttendeeCount < 7 AND
Forms!YourForm!chkLocationchkFilterAttendees = TRUE)
OR Forms!YourForm!chkLocationchkFilterAttendees = FALSE)
The paraentheses are very important in the above to force the AND and OR operations to evaluate independently. In the form, to apply the restriction you just need to requery the form with:
Me.Requery
which you can do in the Click event procedure of a separate button, or in the AfterUpdate event procedure of each of the three controls to apply the restriction progressively as soon as a value is selected in one of the controls or the control is cleared of its value (or unchecked in the case of the check box).
To clear the controls and show all rows you can have a 'Show All' button with the following code in its Click event procedure:
Me.cboCourse = Null
Me.cboLocation = Null
Me.chkLocationchkFilterAttendees = False
Me.Requery
With the above approach you do not have to concern yourself at all with the data types of the columns.
If you are unfamiliar with entering code into a form's or control's event procedures, this is how it's done in form design view:
1. Select the form or control as appropriate and open its properties sheet if it's not already open.
2. Select the relevant event property and select the 'build' button (the one on the right with 3 dots).
3. Select Code Builder in the dialogue and click OK. This step won't be necessary if you've set up Access to use event procedures by default.
4. The VBA editor window will open at the event procedure with the first and last lines already in place. Enter or paste in the code as new lines between these.