It's not clear what you are trying to accomplish with your criteria. If the user did not specify criteria for a given field, what do you want to happen, not have that criteria affect the results at all?
If so, just don't assign any criteria to the field while in find mode. So your script might look like:
Enter Find Mode  ---> No pause selected
Set Field [YourTable::ProblemType ; YourTable::globalForTypeSearch ]
Set Field [ YourTable::DateFIeld ; If ( IsEmpty ( YourTable::globalEndDate ) ;
YourTable::GlobalStartDate & "..." & YourTable::GlobalEndDate ) ]
Set Error Capture [on]
Perform Find 
For more examples of how to use a script to perform a find: Scripted Find Examples.