Part of the problem is that people will make mistakes and they need to be able to over-write them, so you don't want to make it impossible for them to change the record. Also, some info may not be available until later and they will want to come back and add that data then.
Here are some idea you could consider to see which is the best balance between convenience of use and the users' competency. All depend on each user logging in with their account name so that in Manage -> Security you define what each group of accounts can do.
- You could have a 'Finished?' button on the data entry screen. When they click it it sets a field RecordLocked = Yes, and their group's security is set to not let them edit a record if RecordLocked = Yes. You can have it that the Admin group (ie: you, at least) is allowed to edit such records, or at least you can undo the RecordLocked field to be 'No'. You are dependent upon them clicking the button when they've completed the record.
- You could make it that each account can only edit records created by themselves. That stops them over-writing anyone else's records, but they could still over-write their own. At least the more competent would be protected from the actions of the less competent...
- We have also set up security like this where the Common Or Garden User cannot edit a record that was created more than x hours ago. That gives them a while to sort out any admin mistakes, then it 'locks'. They don't have to click the button, but they could still over-write the record inside the allowed time window.
You could combine the last 2 - or all 3 - so that if they don't click the button it locks after an hour anyway, and no matter what they can't interfere with another's records.
Sometimes if there is one field that you know is always filled last you can automatically lock the record once it's completed, but finding such a field is often difficult.
- Another way is to mimic the data entry screen with a set of equivalent global fields, and they are really just a temporary data-capture screen. Nothing is done with the data until they click the 'Create this record?' button you put on the screen. Until they do there is a big warning on the screen "This data has NOT been posted to the filing system!" Once they hit the 'Create...' button a script goes to the real data table, creates a new record, and transfers all the temporary data into a 'real' record. Before it does you could have the script double-check that all fields are entered, they all 'look' sensible, etc. (You can have the two screens as one, where the true data fields have their equivalent global field over the top of them so the user thinks they are entering it directly. In use however, this has almost the same weaknesses as the first suggestion.)
Sorbsbuster, thank you so much! I was able to use your suggestion and it works perfectly (and so much easier than I thought)
I went with the "Finished?" button idea. I had already set it up so users could only edit their own records, so between these two I think we are set!
Thanks so much!!!