Il mio suggerimento non era legato al tuo errore specifico.
Ti ho fatto solamente notare quello che e' una cosa che dovevi comunque correggere perche' (logicamente) sbagliata.
Per il tuo errore specifico, invece, penso che sia legato a queste istruzioni ...
myrecordset.AddNew
...
myrecordset.MoveNext
Se fai un AddNew, puoi scrivere nel nuovo record, ma quando il ciclo esegue la MoveNext, ti ritrovi oltre la fine del file, senza record, e la prima utilizzazione del record da' (ovviamente) quell'errore.
Il tuo e' un errore "logico" ... devi rivedere il tuo algoritmo ...