Событие макроса "После обновления"
Область применения: Access 2013, Office 2013
Событие макроса После обновления возникает после изменения записи.
Примечание.
Событие После обновления доступно только в макросах данных.
Примечания
Используйте событие После обновления, чтобы выполнять любые действия, которые должны происходить при изменении записи. Распространенные варианты использования события После вставки включают применение бизнес-правил, обновление суммарного итогового значения и отправку уведомлений.
Вы можете использовать функцию Updated("Имя поля"), чтобы определить, изменилось ли поле. В следующем примере кода показано, как использовать инструкцию If, чтобы определить, изменилось ли поле PaidInFull.
If Updated("PaidInFull") Then
/* Perform actions based on changes to the field. */
End If
Можно использовать доступ к предыдущему значению в поле с помощью следующего синтаксиса.
[Old].[Field Name]
Например, для доступа к предыдущему значению поля QuantityInStock используйте следующий синтаксис.
[Old].[QuantityInStock]
Предыдущие значения удаляются без возможности восстановления при завершении события После обновления.
В следующей таблице перечислены макрокоманды, которые можно использовать в событии После обновления.
Тип команды |
Команда |
---|---|
Управление |
|
Управление |
|
Управление |
|
Блок данных |
|
Блок данных |
|
Блок данных |
|
Блок данных |
|
Действия с данными |
|
Действия с данными |
|
Действия с данными |
|
Действия с данными |
|
Действия с данными |
|
Действия с данными |
|
Действия с данными |
|
Действия с данными |
|
Действия с данными |
|
Действия с данными |
|
Действия с данными |
|
Действия с данными |
|
Действия с данными |
Чтобы создать макрос данных, который записывает событие После обновления, выполните следующие действия:
Откройте таблицу, для которой нужно записать событие После обновления.
На вкладке Таблица в группе После событий щелкните После обновления.
В окне конструктора макросов отобразится пустой макрос данных.
Пример
В следующем примере кода используется событие После обновления для запуска именованного макроса данных, добавляющего запись в таблицу Comment (Примечание) при каждом обновлении состояния проблемы.
Щелкните здесь, чтобы просмотреть копию макроса, который можно вставить в конструктор макросов.
Чтобы просмотреть этот пример в конструкторе макросов, выполните следующие действия:
Откройте таблицу, для которой нужно записать событие После обновления.
На вкладке Таблица в группе После событий щелкните После обновления.
Выделите код в следующем примере и нажмите клавиши CTRL+C, чтобы скопировать его в буфер обмена.
Активируйте окно конструктора макросов и нажмите клавиши CTRL+V.
<DataMacros xmlns="http://schemas.microsoft.com/office/accessservices/2009/04/application">
<DataMacro Event="AfterUpdate">
<Statements>
<ConditionalBlock>
<If>
<Condition>Updated("Status")</Condition>
<Statements>
<Action Name="RunDataMacro">
<Argument Name="MacroName">Comments.AddComment</Argument>
<Parameters>
<Parameter Name="prmRelatedID" Value="[ID]" />
<Parameter Name="prmComment" Value=""-- Status changed to " & [Status]" />
<Parameter Name="prmUserID" Value="[UserID]" />
</Parameters>
</Action>
</Statements>
</If>
</ConditionalBlock>
<ConditionalBlock>
<If>
<Condition>Updated("Resolution")</Condition>
<Statements>
<Action Name="RunDataMacro">
<Argument Name="MacroName">Comments.AddComment</Argument>
<Parameters>
<Parameter Name="prmRelatedID" Value="[ID]" />
<Parameter Name="prmUserID" Value="[UserID]" />
<Parameter Name="prmComment" Value=""-- Issue resolved as " & [Resolution]" />
</Parameters>
</Action>
</Statements>
</If>
</ConditionalBlock>
</Statements>
</DataMacro>
</DataMacros>
If Updated("Status") Then
RunDataMacro
Macro Name Comments.AddComment
Parameters
prmRelatedID = [ID]
prmComment ="--Status Changes to "&[Status]
prmUserID =[ChangedByUserID]
End If
If Updated("Resolution") Then
RunDataMacro
Macro Name Comments.AddComment
Parameters
prmRelatedID = [ID]
prmUserID =[ChangedByUserID]
prmComment ="--Issue Resolved as "&[Status]
End If