1) You're trying to process the resultset "backwards", but your query does not contain the ORDER BY clause and therefore the database is free to send you the data in any order it feels like. Since the order of the records is undefined in your case, it does not make sense to process them backwards.
2) If you want to obtain the data from database in defined order, you need to use the ORDER BY clause. You can easily tell the database to revert the order using the DESC keyword (eg. ORDER BY ENAME DESC, EMPNO DESC) - the records will come out of the database sorted as you need them and you'll iterate them forwards, not backwards.
You should use normal, forward-only recordset whenever possible, as it is much more efficient and resource-friendly.