Sometime in the last 6 years, Jet transactions
were changed to prevent 'dirty reads'. You
can't read anything touched inside a transaction.
Access uses a collection of cached connections,
and each connection runs a separate transaction(!)
After you have touched the records, none of the
other connections can read the records until
the transaction is completed.
You have no control over which connection you
use, so you will always get spurious locks in
transactions.
Solutions are
(1) upgrade to A97/ Jet 3.51, which does not exhibit
this behaviour.
or
(2) use a different workspace, so that your database
action is not inside the implicit transaction.
set ws = application.dbengine.createworkspace
set db = ws.opendatabase(codedb.name)
(david)
"merco" <d.********@gmail.com> wrote in message
news:11**********************@o13g2000cwo.googlegr oups.com...
it seems that all the code within the delete event belong to an
implicit Transaction (made from Access i suppose).
Maybe this is due to the "cancel" parameter that is required from this
kind of event procedure ?