Событие уровня формы, когда данные изменяются в форме MSAccess? - PullRequest
0 голосов
/ 24 декабря 2008

Ну, в основном я работаю над приложением MSAccess и над формой, где администраторы будут просматривать и редактировать пользовательские данные. Я хочу иметь возможность вызывать событие со старыми и новыми значениями поля всякий раз, когда оно изменяется. Эта функция добавит запись в таблицу аудита для отслеживания изменений.

У меня нет проблем с созданием запроса для добавления записи в таблицу аудита, но я не знаю, где разместить вызов функции. Я пробовал несколько событий уровня формы, поэтому мне не нужно заходить в каждое из пятидесяти полей и редактировать их события onBlur, чтобы проверить новое значение, но мне не повезло.

Любые советы приветствуются.

Ответы [ 3 ]

2 голосов
/ 24 декабря 2008
0 голосов
/ 24 декабря 2008

решением (1) было бы добавить обработчик события в событие beforeUpdate. Предложение Рему очень интересно для этого.

Решение (2) заключается в сравнении данных в наборе записей с данными в элементе управления в событии afterUpdate: для элементов управления, связанных с полями в наборах записей, всегда существует шаг, на котором значение в элементе управления отличается от значения в элементе управления. записей. Это очень легко, когда источником управления являются прямые имена полей.

Но мне не понравилась концепция аудита изменений на уровне формы: ее результаты могут быть неоднозначными, поскольку данные, измененные на уровне формы, могут не сохраняться на уровне таблицы, либо потому, что форму можно закрыть до того, как базовый набор записей будет обновлен или потому что запрос SQL не отправляется на сервер.

Если обновление данных выполняется с помощью SQL synatx, решение (3) будет хранить строки «INSERT» или «UPDATE», отправленные из приложения Access на сервер базы данных, в «журнале транзакций».

0 голосов
/ 24 декабря 2008

Вы можете вызывать свою функцию в событиях после вставки, после обновления и после подтверждения. Это своего рода триггеры, которые срабатывают после вставки, обновления или удаления записи.

...