Stop using transactions.

Stop getting a recordset to perform a simple update.

Start using ACTION QUERIES.

Code:
strSql = "Update MyTable Set Field1='" & rsLocalRecord("Field1") _
                        & ", Field2='" & rsLocalRecord("Field2") _
.
.
.
                        & " Where Id='11'"
Build that string and then use .Execute on your connection object to run it.

This requires no lock - no transaction - no hold on the DB.

That's a more proper way to update records in my opinion.