Kind of a tough one, given the available info so far. But I'm going to take a stab at it.
I believe the relevant point here is that error 3021 indicates that the recordset does not have a current record. So really, the only possibilities I can see here are that either there are no records, or your Move has gone "out of bounds".
I'd say the chances are that despite your assurances to the contrary, your index value isn't as right as you think. Remember that many indexes in VB are (very annoyingly, in my opinion) zero-based. So for example, in a listbox with 5 entries, they are not numbered 1 to 5. They are numbered 0 to 4. This very frequently trips people up.
Oh, by the way - what version of VB is this? And what type of recordset (could be ADO, DAO, not sure whether there are others by now).