Как правило, если я хочу что-то сделать в событиях OnDelete, кроме действий по умолчанию, я, как правило, отключаю AllowDeletes и создаю командную кнопку DELETE RECORD, которая делает то, что я хочу.
Таким образом, я не зависим от встроенных событий. Если мне нужно сохранить значение, я делаю это, выскакиваю сообщение с подтверждением, а затем делаю то, что нужно, любым способом, который я считаю самым простым.
Я просто нахожу это намного проще, особенно потому, что пользовательские настройки могут заставить вещи вести себя по-другому. Например, два события Confirm не происходят, когда у пользователя есть эти настройки (из файла справки A2003, но так было всегда):
Примечание. Событие AfterDelConfirm
не происходит, и Подтверждение удаления
диалоговое окно не отображается, если вы
снимите флажок Запись изменений
в разделе «Подтверждение» на вкладке «Изменить / Найти»
диалоговое окно Параметры, доступное по
нажав Опции в меню Сервис.
Так что я просто избегаю всего этого, катя свой собственный код удаления и избегая поведения по умолчанию.
(и да, если вы следили за моими постами на протяжении многих лет, вы знаете, что для меня довольно необычно советовать не использовать просто поведение Access по умолчанию, но это один из случаев, когда я чувствую, что контроль больше подходит почти во всех случаев)