Dim cnnAccess As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim sql As String
cnnAccess.CursorLocation = adUseClient
cnnAccess.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\biblio.mdb;"
cnnAccess.BeginTrans
sql = "SELECT * FROM Authors Where Author = '1'"
rst.Open sql, cnnAccess, adOpenKeyset, adLockOptimistic
With rst
.AddNew
!Author = "Name"
.Update
' тут останавливаемся и пытаемся в базе поредактировать все записи.
End With
rst.Close
Set rst = Nothing
cnnAccess.CommitTrans
cnnAccess.Close
Set cnnAccess = Nothing
После Update таблица становится недоступна для изменений другим пользоателем, даже после rst.close и Set rst = Nothing
Только когда из программый выйдешь то все ок.
Все добавления делаются в транзакции, так что не понятно зачем блокируется таблица целиком? Ведь добавляемую в транзакции запись не видно, ее никто не изменит. Как отключить блокировку?
Точнее блокируется не вся таблица, а некоторая ее часть (называется страница?). Как бы добиться блокировки только одной записи.