I have thought to some causes to your problem:
1) Try to change also the CursorLocation property for your recordset. try both adUseClient and adUseClient I don't remember which one is default.
I never used much ADO Data Control, instead I used ADODB.Recordset.
I had to tell you that I don't know why I didn't succeed in updating a SINGLE table in multiuser environment using the ADO locking mechanism. Sometimes worked, sometimes not, which was very annoying.
2)I invented myself a workaround like this:
1. add to each table that you will have to update a column named let's say REC_STATE with a default of "" (string)
2. when a user access the record put in this field the name of the user.
3. when a user saves the record put back "" into this field.
Notes:
- test this column before loading a record. if the record is used you give a message like "Record is in use by username" (now you know the user name, don't you).
- if you think about the way your aplication will work you will see that you have mych more control over the aplication, will little more effort in programming.
Hope this helps,s-)
Blessed is he who in the name of justice and good will, shepards the week through the valley of darknees...