Hi All,
I'm seeking a little advice about how this should be handled in a multiuser
access application. We have a split access 2003 database with each client
having their own front end. In our current scheme of things it's likely that
multiple clients would be editing the same record simultaneously thus we
constantly receive the "Error 3167 This record has been deleted" or the
"Write Conflict (this record has been changed by another user.. (I don't
know the error code for this one). We'd like to intercept such messages and
allow the user to overwrite the changes made by someone else, or accept
those changes arfter reviewing them. How is this kind of situation usually
handled?
Thanks
Malik
colingeb - 27 Jul 2006 18:31 GMT
I'm no expert and this seems awfully messy. But, if you are
comfortable with VB, my thoughts are...
I guess you have a form open with all the values at the time the record
was fetched. And I assume other's updates to that record between each
user's fetch and commit are immaterial to another user's decision to
overwrite them. And you have a unique index to identify a record.
If these assumptions are valid, I would think you could have an update
button on the form that first searches for the unique field, and if
found, runs an update statement that explicitly reveferences data in
the form to build the update statement. If the unique index isn't
found, it could just recreate the record the same way with an append
statement.
This method may still not work though as Access might refuse to allow
changes to a record open in another's form. I had that happen once in
a shared multiuser database even when recordlocks were not set.
Good luck.