You can use Staz's add-on module to communicate which records are busy so that you can indeed lock part of the file. I make it much simpler by not leaving the file open and using flushevents to make sure it is not left open. I open the file, get what I want, and shut it. If I am going to change something, I keep a note of which record then open the file again "RECORD" to that spot save the new record and close. I use "is filebusy" function from program generator to check before I open the file if busy, I just animate the cursor a few times and check again.