Поделиться через


Событие макроса "После обновления"

Область применения: 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]

Предыдущие значения удаляются без возможности восстановления при завершении события После обновления.

В следующей таблице перечислены макрокоманды, которые можно использовать в событии После обновления.

Тип команды

Команда

Управление

Оператор макроса "Примечание"

Управление

Оператор макроса "Группа"

Управление

Макроблок Если... То... Иначе

Блок данных

Макрокоманда "СоздатьЗапись"

Блок данных

Макрокоманда "ИзменитьЗапись"

Блок данных

Макрокоманда "ДляКаждойЗаписи"

Блок данных

Блок данных "НайтиЗапись"

Действия с данными

Макрокоманда "ОтменитьИзменениеЗаписи"

Действия с данными

Макрокоманда "УстранитьОшибкуМакроса"

Действия с данными

Макрокоманда "УдалитьЗапись"

Действия с данными

Макрокоманда "ВыходДляКаждойЗаписи"

Действия с данными

Макрокоманда "РегистрацияСобытия"

Действия с данными

Макрокоманда "ПриОшибке"

Действия с данными

Макрокоманда "ВыводОшибки"

Действия с данными

Макрокоманда "ЗапускМакросаДанных"

Действия с данными

Макрокоманда "ОтправитьПочту"

Действия с данными

Макрокоманда "ЗадатьПоле"

Действия с данными

Макрокоманда "ЗадатьЛокПеременную"

Действия с данными

Макрокоманда "ОстановитьВсеМакросы"

Действия с данными

Макрокоманда "ОстановитьМакрос"

Чтобы создать макрос данных, который записывает событие После обновления, выполните следующие действия:

  1. Откройте таблицу, для которой нужно записать событие После обновления.

  2. На вкладке Таблица в группе После событий щелкните После обновления.

В окне конструктора макросов отобразится пустой макрос данных.

Пример

В следующем примере кода используется событие После обновления для запуска именованного макроса данных, добавляющего запись в таблицу Comment (Примечание) при каждом обновлении состояния проблемы.

Щелкните здесь, чтобы просмотреть копию макроса, который можно вставить в конструктор макросов.

Чтобы просмотреть этот пример в конструкторе макросов, выполните следующие действия:

  1. Откройте таблицу, для которой нужно записать событие После обновления.

  2. На вкладке Таблица в группе После событий щелкните После обновления.

  3. Выделите код в следующем примере и нажмите клавиши CTRL+C, чтобы скопировать его в буфер обмена.

  4. Активируйте окно конструктора макросов и нажмите клавиши 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="&quot;-- Status changed to &quot; &amp; [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="&quot;-- Issue resolved as &quot; &amp; [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