It's worth a try... back that table up and run the routine and see if it falls over...
OpenRecordSet is a DAO method that applies among others to the Database, TableDef and QueryDef objects. One of the arguments of this method is Type, to specify what kind of recordset you want to open. Possible values for Type are:
If you want to be able to add, edit and delete records, use dbOpenDynaset. This will work both with tables/queries in the database itself as with linked tables that reside in another Access database.
If you only want to retrieve records without editing them, and you want to be able to move forwards and backwards, you can use dbOpenSnapshot.
If you will only run through the records once, from first to last, and you don't need to edit them, you can use dbOpenForwardOnly.
dbOpenSnapshot and dbOpenForwardOnly place fewer locks on the table, which can be handy in a multi-user environment.