I often make a tblLockedRecords to record the records being accessed. It's not bulletproof, but it can help.
In the databases where I've done this, it's not possible to touch data in datasheet view and the full forms are always opened filtered to just one record.
When you open the forms with which you want to lock records, add record to the above table. The fields should just be tableName, ID, and UserName. In this same event you'll also have to check for a lock on this record. If there's a match, make the data untouchable (allowEdits, allowDelete, etc.). When you close the forms, get rid of that record.
The futzing comes when a user shuts down incorrectly, such as through a poweroff, etc. I also only let users get out of the application through closing all forms and then closeiing the switchboard. But still, there are sometimes records left in tblLockedRecords. To deal with this, there are three strategies:
1) when you leave the database code kills all records with your name that are in the table.
2) when you get into the database, that same code fires.
3) the administrator has the ability to clear all records at the touch of a button.
It's a good bit of work, and comes mostly from the fact tat I used to deal exclusively with unbound formsl But it does get the job done to a fairly good extent.
Also, when you open a record that is locked down, the caption of the form tells you that it's locked, and shows you the name of the person who has it locked.
Jeremy =============
Jeremy Wallace
Designing, Developing, and Deploying Access Databases Since 1995
Take a look at the Developers' section of the site for some helpful fundamentals.