have you verified that the reference is turned on for 'Microsoft DAO 3.6 Object Library' that it's higher priority than ActiveX Data Objects (I usually turn the latter off altogether)?
Personally, I define my recordset objects within my procedures, and if it's needed in another procedure I'll pass the reference in my parameters. Just remember to 'SET rst = Nothing' at the end of the defining procedure to clear the reference.
And yes I still use DAO regularly myself. I'm just more accustomed to it.