Usually even there's no data returned, the form will still be opened with no data. Not go blank. If it's going blank, it means something wrong with the query or the unjoined relationship. One way, you can set the query property to Dynaset Inconsistent to return no data instead of blank.
However, if you just think of canceling the form opening when there's no data, I'll say on Form_Load, create recordset, if isnull(rs.recordcount) then close form. This can be done through code or macro (cancelEvent).
Hope you work it out.