I use a somewhat simple process to see who has what open, stored in a separate table, which also acts as an audit trail of adds, edits, deletes, and whatever else you want to track. tblFormActivity has fields:
ID - Autonumber field
FormName
UserWrkStn
OpenDateTime
Activity
CloseDateTime
When app starts, I store UserID and workstation name into global variable. On each form I declare a long FormRecID variable, which is set on the form open event by calling a function named AddFormRec, which adds user, form name, open time, and type of activity they are doing. On form close event, function EditFormRec edits tblFormActivity record added on open event, changes activity if needed, and set close time (use Seek method in this one). So, by building a form on tblFormActivity, I can see who has what open, when, and what they are doing to what record, etc. Sometimes our accounting folks want to find who made a stupid entry, or deleted something, etc. Also helps me determine who has backend DB open, and from what workstation, if I need to ask them to exit a few minutes to make table changes. It's not foolproof, and occasionally a tblFormActivity record is left without a close time. It's a pretty active table, about 400-500 records a day, so I have a job setup to delete records older than 2 weeks. I did some performance measurements with feature both on and off, and overhead was negligible, at least on our LAN. Sorry for the long-winded note...