ник: Анатолий (Киев)
1. Обычная форма, в заголовке модуля переменная-флажок, очищаемая по Form_Current. При нажатии кнопки флажок -> True и Me.Refresh (или Me.Dirty=False). На Form_BeforeUpdate, если флажок=True - ничего не делаем (данные сохраняются), иначе Me.Undo 2 раза. Флажок сбрасываем в любом случае.
2. На форме создать свободные поля, соответствующие полям таблицы-источника формы, на
Form_Current заполняем их данными из таблицы, по кнопке возвращаем назад.
3. Использовать транзакции. Мне этот подход нравится больше всего, т.к. он и проще (для знающих предмет), и позволяет сохранить/откатить изменения нескольких записей.