2012-05-09 2 views
2

Использование Access 2010, WinXP. Я пытаюсь обновить таблицу test сзаписей не отображается ошибка при вставке в заблокированную таблицу

Sub testUpdate() 
Dim rs As Recordset 
Dim db As DAO.Database 

Set db = CurrentDb 
Set rs = db.OpenRecordset("test") 

With rs 
.AddNew 
!field1 = "abc" 
!field2 = "def" 
.Update 
End With 

End Sub 

Если test заблокирован другим пользователем, процедура выполняется, и не обновляет таблицу (и это хорошо), но и не приводит к ошибке. Если я выполняю ту же операцию, что и оператор вставки SQL, например.

insert into test (field1,field2) values ("abc","def")

тогда я получаю сообщение об ошибке, говорящее мне вставка не удалась из-за блокировки нарушений. Как я могу сделать recordset.update сгенерировать аналогичную ошибку, которую я могу обработать? Насколько я могу судить, по-видимому, нет никакого эквивалента для dbFailOnError с Recordset.

+0

Как проходит тест? Например, пользователь получил таблицу в виде дизайна, открыл эксклюзивную или просто блокировку записи? – Fionnuala

ответ

1

Я думаю, вы должны смотреть на установке типа набора записей и блокировки типа, если вы хотите, чтобы вызвать ошибку в, например:

Currentdb.OpenRecordset("test", dbOpenDynaset, dbPessimistic,) 

Вы можете проверить различные варианты их, пока вы не найдете тот, который работает, в доступной встроенной справке будут перечислены все доступные параметры.

Смежные вопросы