Кто-нибудь знает способ обнаружения, когда последний раз, когда таблица Microsoft Access была изменена (вставлена или обновлена)? Мы использовали OLEDB через ADO COM для связи с базой данных доступа программно и искали способ обнаружения изменений в конкретных таблицах. Нам не нужно знать, каковы эти изменения, только что были сделаны изменения.Определить время последнего изменения в таблице базы данных Microsoft Access
ответ
Единственный способ определить, изменились ли данные в таблице, - это выполнить запрос к таблице.
Вы должны добавить столбец типа DATETIME
в таблицу, например. с именем LastUpdatedDate
, который указывает последнюю обновленную дату/время каждой строки. Сделайте это NOT NULL
, так что вам нужно будет написать обновленное значение DATETIME
для этого столбца для каждого INSERT
или UPDATE
. Также установите для столбца значение по умолчанию DATE()
для текущей отметки даты или NOW()
для текущей метки даты/времени. Затем добавьте правило проверки или ограничение CHECK
, например. CHECK (LastUpdatedDate = NOW())
, чтобы убедиться, что столбец фактически обновляется на каждом UPDATE
и INSERT
.
Наконец, запустите запрос MAX(LastUpdatedDate)
, и вы получите то, что вам нужно.
Невозможно «вручную» записывать в столбец каждый раз, когда вы обращаетесь к таблице.
Как уже указывалось, нет возможности отслеживать изменения без его кодирования.
Там простой пример на ACC2000: Как создать Аудиторские записи изменений в форме http://support.microsoft.com/default.aspx?scid=kb;en-us;Q197592
Audit Trail - Log изменения на уровне записей по адресу: http://allenbrowne.com/AppAudit.html В статье рассматривается редактирует вставка , и удаляет для формы и подформы.
модули: Ведение истории изменений http://www.mvps.org/access/modules/mdl0021.htm Процедура История Таблица предназначена для записи записи истории, которые позволяют отслеживать изменения, сделанные в полях в одной или нескольких таблиц.
Вам понадобится создать столбец временной метки в таблице и обновить значение во время изменений данных.
Я не думаю, что любой из них будет работать, если они используют OLEDB через ADO COM для связи с базой данных доступа программно. – onedaywhen