If I understand correctly, you want to have a form to prompt for some data, run some validation then use those fields to filter the records in a query. Some answers then a suggestion:
1st, Rules can be dynamic or not. If not, then the rules are evaluated just prior to saving the data to the database. If dynamic and your rule looks like "IF BO.attr WAS CHANGED AND BO.attr > 10. THEN REPORT ERROR "....." then it will be triggered when you leave the field.
How I handle your requirement is to have a NON-persistent BO with the attributes I want to use for searching and have a process that looks like:
ENTER NEW NonPersistentBO USING "My Search Form"
IF NPBO.attr < 1 THEN REPORT ERROR 'invalid input'
......
DISPLAY QUERYNAME
where your QUERYNAME looks like FIND BO WHERE NPBO.attr IS UNDEFINED OR NPBO.attr = BO.attr....etc.
Bruce