Вы можете отслеживать время последнего изменения записей в таблице Access с помощью формы с макросом. Когда форма используется для изменения записи, макрос сохраняет дату и время в таблице. Сохраняются только дата и время последнего изменения.
Примечание: Процедуры, описанные в этой статье, предназначены для использования в классических базах данных Access.
В этой статье
Обзор
Чтобы записать дату и время изменения записей в таблице, необходимо выполнить следующие действия.
Шаг 1. Добавление полей в таблицу Вам нужно место для хранения даты и времени, прежде чем вы сможете записать его. Первым шагом является создание полей в таблице с записями, которые требуется отслеживать. Чтобы записать дату и время, создайте одно поле для даты и одно поле времени. Если вы хотите записать только одно или другое, можно создать только нужное поле.
Шаг 2. Create макроса, который записывает дату и время В зависимости от того, хотите ли вы записать дату, время или и то, и другое, макрос будет иметь одно или два действия. При написании макроса укажите только поля, в которых будут храниться дата и время, а не таблицу, содержащую эти поля. Таким образом можно легко повторно использовать макрос с другими таблицами и формами.
Шаг 3. Добавление макроса в форму ввода данных Макрос добавляется в свойство формы перед обновлением формы, используемой для редактирования записей в таблице. Если вы используете другие формы для изменения записей в таблице, вы также можете добавить макрос в каждую из них. Таким образом, вы можете записать дату и время независимо от того, какую форму вы используете для изменения записи.
Совет: Если вы хотите отслеживать время создания записей, но не хотите, когда они изменяются, просто создайте в таблице поле для отслеживания и используйте свойство Значение по умолчанию поля для метки времени каждой записи при ее создании.
Подготовка
Прежде чем приступить к работе, рассмотрите следующее:
-
Пользователи должны включить макросы в базе данных. Если пользователь открывает базу данных и не включает макросы, макрос не будет помечать записи по времени. Если база данных хранится в надежное расположение, макросы включаются автоматически.
-
Если пользователь изменяет записи, но не использует форму ввода данных, содержащую макрос, который записывает метки времени, записи, редактируемые пользователем, не будут иметь метки времени.
-
Так как дата и время хранятся в полях таблицы, значения в этих полях перезаписываются при каждом изменении записи. Другими словами, можно хранить только дату и время последнего изменения.
-
Если вы хотите записать только дату и время создания записи, просто добавьте поле в таблицу и присвойте этому полю свойству Значение по умолчанию значение Now() или Date().
-
Если файл базы данных имеет более старый формат файла и использует безопасность на уровне пользователя, необходимо иметь разрешения на изменение структуры таблицы и форм, используемых для редактирования ее записей.
Шаг 1. Добавление полей метки времени в таблицу
Create поля для хранения информации.
-
Откройте таблицу в режиме конструктора.
-
Выполните одно или оба указанные ниже действия.
-
Create поле для хранения даты. В столбце Имя поля окна конструктора введите Дата изменения в новой строке, а затем выберите Дата и время в столбце Тип данных .
-
Create поле для хранения времени. В столбце Имя поля окна конструктора введите Время изменения в новой строке, а затем выберите Дата и время в столбце Тип данных .
-
-
Чтобы сохранить изменения, нажмите сочетание клавиш CTRL+S.
Шаг 2. Create макроса, который записывает дату и время
После создания полей создайте макрос для метки времени для этих полей. Чтобы сделать макрос пригодным для повторного использования с другими таблицами, обратитесь только к именам полей, а не к именам таблиц.
Примечание: Если вы хотите записать только дату или время, опустите макрокоманду, которая вам не нужна.
-
Откройте вкладку Создание и в группе Другие нажмите кнопку Макрос. Если она недоступна, нажмите стрелку под кнопкой Модуль или Модуль класса, а затем нажмите кнопку Макрос.
-
На вкладке Конструктор в группе Показать или скрыть выберите пункт Показать все действия.
-
В окне макросов откройте список макрокоманды и выберите SetValue.
1. Сначала покажите все доступные макрокоманды. Действие SetValue считается потенциально небезопасным и по умолчанию скрыто, так как оно может изменять данные.
2. Затем выберите действие SetValue из этого списка.
-
В поле действия SetValue в поле Элемент введите или вставьте [Дата изменения].
-
В поле Выражение введите Date().
-
Откройте следующий список макрокоманды и выберите SetValue.
-
В поле действия SetValue в поле Элемент введите или вставьте [Время изменения].
-
В поле Выражение введите Time().
-
Нажмите клавиши CTRL+S, а затем в диалоговом окне Сохранить как введите Последнее изменение.
Шаг 3. Добавление полей и макроса в форму ввода данных
После создания макроса добавьте его в каждую форму ввода данных, которую пользователи будут использовать для ввода данных в соответствующую таблицу.
-
Откройте форму ввода данных в режиме конструктора.
-
На вкладке Конструктор в группе Сервис выберите пункт Добавить существующие поля.
-
В списке полей в разделе Поля, доступные для этого представления, перетащите в форму поля Дата изменения и Время изменения . При необходимости измените размер и размещение полей в форме.
-
Если окно свойств не отображается, нажмите клавишу F4.
-
На странице свойств убедитесь, что для параметра Тип выделения задано значение Форма.
Совет: Чтобы изменить тип выделения, щелкните нужный тип выделения в раскрывающемся списке.
-
На странице свойств откройте вкладку Событие .
-
На вкладке Событие щелкните стрелку в поле Перед обновлением и выберите пункт Последнее изменение.
-
Если для изменения записей используется несколько форм, повторите эту процедуру для каждой такой формы.
-
Чтобы убедиться, что макрос работает правильно, откройте форму в представлении формы, измените запись и нажмите клавиши SHIFT+F9. Должна отображаться дата и время изменения записи.