I Would........
I would create a query based on the table listing all of the record numbers in ascending order.
Change the autonumber field concerned to a number, long field.
When writing a record:
DIM MYDB AS DATABASE
DIM SOURCE AS RECORDSET
DIM TARGET AS RECORDSET
SET MYDB = CURRENTDB()
SET SOURCE = MYDB.OPENRECORDSET("{newly created query}")
SET TARGET = MYDB.OPENRECORDSET("{table holding record number}")
SOURCE.MOVELAST
TARGET.ADDNEW
TARGET![{record number field}] = SOURCE![{record number field}] + 1
TARGET.UPDATE