i believe optional parameters were introduced in v 2008. If you have an earlier version you will not be able to leave them blank.
If you have 2008 then you can use the hasvalue() function to manage select statement.
If you do not have 2008 then you have to have the users enter a value that you write to equate to empty in you select statement.