Try not to use recordsets directly. Query the data, then get it into an array with getRows(). Arrays are much less work for the server than a big, complex Recordset object whose extended functionality you're never going to use.
But, to answer your questions:
1. I don't think that ADO will mind a space in the field name if you're referencing it the way undertaker78 suggests. But if it does, there are a couple of ways around it. One is to use the field index rather than the name, if you know it:
RecordSetName.Fields(3).Value. The other is to use an alias in your SQL:
SELECT [mytable].[myField] AS myAlias.
2. I don't know your application scope but if you're looking to jump around in data like that then I'd consider rethinking it a bit. You probably shouldn't have to go jumping to the nth record. But you can do so with the Move() recordset method. See
http://www.devguru.com/technologies/ado/8642.asp
Of course, if you dump the recordset into an array, all of this is academic. You just reference array elements as you would with any other.