Я разрабатываю базу данных, в которой я хочу отслеживать изменения в своих таблицах, в данном случае в таблице «человек», так что то, что отображается в моем пользовательском интерфейсе Access как редактирование записи человека, на самом деле появляется в моем бэкэнде PostgreSQL как новая запись с отметкой времени и полем имени пользователя, отражающими время и человека, внесшего это редактирование.
Прежде всего, я никогда не пытался создать подобный дизайн, поэтому было бы неплохо получить некоторую уверенность в том, что я делаю это разумно. Однако мой главный вопрос заключается в том, как это реализовать. В общем, формы Access, кажется, очень сильно предназначены для редактирования записей, и я не уверен, как я могу чисто изменить его поведение, чтобы вместо этого вставить новые.
Насколько я понимаю, событие BeforeUpdate срабатывает перед обновлением на уровне базы данных. Что бы я хотел сделать, так это отредактировать метод BeforeUpdate моей формы с помощью кода, например:
- Отменить обновление базы
- Обновите отметку времени в Access для записи, с которой он работает.
- Обнулите поле recordid из записи, которая является первичным ключом auto_increment, так что при вставке новый идентификатор записи будет назначен автоматически.
- Вставьте новую копию записи, с которой я работаю в Access
- Если необходимо (я так думаю?), укажите в моей форме доступа на только что вставленную новую запись (кстати, как мне найти вставленную новую запись? Могу ли я получить ссылку на нее во время вставки, или на автоматически увеличивающийся первичный ключ, который был сгенерирован?)
Спасибо за любую помощь, которую может предоставить любой.