That probably means that you are not closing the initial recordset after its use - another really nasty programming habit and cause for numerous errors and headaches.
I have never seen such a test being used. As you could see, the problem was that the recordset was still open. When you open a recordset, get the records and close it immediately. I don't know what you use for reference, but if you have no quality reference, have a serious look at the way Snitz does it. You won't see that rs.state test in the Snitz code and I have never seen it in the couple ASP books I have.,