I noticed that error too. It seems that a couple of the controls may be corrupt. I would suggest not using special characters in the names of your controls. The names you used for your controls may be the cause of the error. Take a look at the naming convention I suggested in post #5.
So, you can place those unbound controls on your original form. Maybe they could go in the form's header. Then, the button could apply the strWhere variable to the current form's Filter property. One thing to remember about the filter property is that it can be removed/altered by the user via Access' intrinsic tools. So it may be misleading if a checkbox is ticked and the user then changes the filter settings.
Code for applying WHERE criteria to the current form's Filter property will look something like this ...
Code:
me.filter = ""
me.filteron = false
me.filter = strWhere
me.filteron = true