Any SQL statement that uses an aggregate (any aggregate) has to return rows. Even if zero rows were counted, the count itself is still returned as an aggregate row. This implies that Method 1 isn't going to work, but that Method 2 is guaranteed to work.
The value -1 in a recordcount has special meanings for various kinds of recordsets. See the
RecordCount entry in the ADO documentation.
-PatP