powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Блокировка записей
4 сообщений из 4, страница 1 из 1
Блокировка записей
    #32469484
Евгений.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, кто сталкивался?

Пока я работаю через форму с одной таблицей, мне нужно чтобы никто не менял данные во второй (Т2). Поэтому на открытие формы я делаю так:
Код: plaintext
1.
2.
3.
4.
5.
Private blocking As Recordset

Private Sub Form_Open(Cancel As Integer)
   Set blocking = CurrentDb.OpenRecordset( "Т2" , dbOpenDynaset, dbDenyWrite)
End Sub


Но на моей форме есть кнопка, которая добавляет записи в Т2. Поэтому на нажатие я делаю так:
Код: plaintext
1.
2.
blocking.Close
Set blocking = Nothing

а уже потом
Код: plaintext
1.
2.
3.
Dim  rs As Recordset
Set rs = CurrentDb.OpenRecordset( "Т2" )
rs.AddNew


Проблема в том, что на строке Set rs = CurrentDb.OpenRecordset("Т2") аксес говорит "Error 3008: The table 'T2' is already opened exclusively by another user... (DAO.Database)", т.е. блокировка не снимается. В чем тут может быть дело?
...
Рейтинг: 0 / 0
Блокировка записей
    #32469508
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Я попробовал, у меня все работает. Можно на всякий случай добавить DoEvents между снятием блокировки и открытием второго рекордсета.
...
Рейтинг: 0 / 0
Блокировка записей
    #32470435
Евгений.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Действительно.

Забыл сказать про комбо-бокс. Теперь я понял, что он виноват.
Дело в том, что на форме есть еще комбо-бокс, источником его строк служит запрос все из той же таблицы Т2.

Если открыть форму и сразу жать на кнопку, то все работает нормально.
Но если сначала выбрать значение в комбо-боксе, а потом нажать на кнопку, то возникает эта ошибка блокировки.

Я уже в этом запросе сменил тип с "Динамического набора" на "Статический набор", но не помогло. Как еще бороться?
...
Рейтинг: 0 / 0
Блокировка записей
    #32470494
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Можно обнулить RowSource комбобокса, открыть второй рекордсет и вернуть RowSource комбобокса.

dim s as string
s=me!mycombo.rowsource
me!mycombo.rowsource=""
doevents
...openrecordset
me!mycombo.rowsource=s
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Блокировка записей
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]