Access 2002

Текущие данные


Прежде всего в форме нужна кнопка Cancel Changes. В нашем примере она названа cmdRollbackSubform. Эта кнопка должна быть доступна только в том случае, когда текущие данные главной или подчиненной формы изменены. Поэтому мы отключаем ее при переходе к другой записи главной формы (обработчик события главной формы Current присваивает свойству этой кнопки Enabled значение False). Кнопка включается в ответ на события главной или подчиненной формы Dirty и отключается в ответ на события Undo. Ниже приведен код процедур Form_Dirty и FormJJndo подчиненной формы.

Код, выполняющий большую часть работы по управлению транзакциями, приведен в модуле главной формы. В разделе объявлений в нем объявлена переменная для объекта Workspace (mwks). Именно она будет использоваться для того,

Для нашей формы мы создаем отдельный объект Workspace, чтобы с помощью его методов BeginTrans, CommitTrans и Rollback можно было начать, сохранить и отменить транзакцию. Во второй строке с помощью метода OpenDatabase объекта Workspace мы получаем ссылку на объект, представляющий текущую базу данных. («Почему, — спросите вы, — мы не воспользовались для этого функцией CurrentDb()?» Все по той же причине. Раз мы работаем с отдельным объектом Workspace, именно его мы и должны применять для получения ссылки на объект базы данных.) Наконец, третья строка получает ссылку на объект QueryDef, который представляет запрос, используемый для заполнения подчиненной формы. (Обратите  на то, что этот код не будет работать, если подчиненная форма заполняется не из запроса. Можно модифицировать его для работы с SQL-строкой, но мы не пробовали.)

Комментарии закрыты