Триггер доступа MS? - PullRequest
       0

Триггер доступа MS?

15 голосов
/ 11 апреля 2011

У меня есть две таблицы с именами [Insert_Record] и [Delete_Record] в MS Access.Обе таблицы имеют одинаковые поля, но в одной таблице есть записи, тогда как в другой таблице нет записей.

Вопрос: Я хочу, чтобы при удалении любой записи из таблицы [Insert_Record] вся запись автоматически вставлялась в другую таблицут.е.: [Удалить запись].

Как мне это сделать?

Ответы [ 3 ]

14 голосов
/ 08 сентября 2014

В Access 2010 представлены управляемые событиями Макросы данных , похожие на триггеры.Процесс, описанный в вопросе, можно легко выполнить с помощью макроса данных после удаления в таблице [Insert_Record]:

AfterDelete.png

1 голос
/ 11 апреля 2011

Насколько я понимаю, в Access нет триггеров.

Лучшее, что вы можете сделать, это поместить такую ​​логику в формы, которые редактируют таблицу.Другими словами, обработайте удаленное событие на уровне формы и поместите туда свою логику вставки.

Если вам нужны триггеры, вам нужно использовать надлежащую RDMS, которая их поддерживает (MySQL, MS SQL, Oracle, многие другие).

EDIT: Другойспособ сделать это (который может или не может работать для вас) будет добавить логический столбец «IsDeleted».Таким образом, вы можете просто логически удалить запись, а не перемещать ее в другую таблицу.Недостатком этого подхода является то, что удаленные записи остаются в основной таблице, что может вызвать проблемы с производительностью при большом количестве удалений.

0 голосов
/ 11 апреля 2011

Создайте запрос на добавление, чтобы добавить записи во вторую таблицу, который выполняется в событии «Подтверждение удаления» формы, которую вы используете для удаления записи из первой таблицы.

...