Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: Access 2013, Office 2013
Событие макроса После вставки возникает после добавления записи.
Примечание.
Событие После вставки доступно только в макросах данных.
Примечания
Используйте событие После вставки, чтобы выполнять любые действия, которые должны происходить при добавлении записи в таблицу. Распространенные варианты использования события После вставки включают применение бизнес-правил, рабочих процессов, обновление суммарного итогового значения и отправку уведомлений.
Вы можете использовать функцию Updated("Имя поля"), чтобы определить, изменилось ли поле. В следующем примере кода показано, как использовать инструкцию If, чтобы определить, изменилось ли поле PaidInFull.
If Updated("PaidInFull") Then
/* Perform actions based on changes to the field. */
End If
В следующей таблице перечислены макрокоманды, которые можно использовать в событии После вставки.
Тип команды |
Команда |
|---|---|
Управление |
|
Управление |
|
Управление |
|
Блок данных |
|
Блок данных |
|
Блок данных |
|
Блок данных |
|
Действия с данными |
|
Действия с данными |
|
Действия с данными |
|
Действия с данными |
|
Действия с данными |
|
Действия с данными |
|
Действия с данными |
|
Действия с данными |
|
Действия с данными |
|
Действия с данными |
|
Действия с данными |
|
Действия с данными |
|
Действия с данными |
Чтобы создать макрос данных, который записывает событие После вставки, выполните следующие действия:
Откройте таблицу, для которой нужно записать событие После вставки.
На вкладке Таблица в группе После событий щелкните После вставки.
В окне конструктора макросов отобразится пустой макрос данных.
Пример
В следующем примере кода используется событие После вставки для выполнения некоторой обработки при добавлении записи в таблицу Donations (Пожертвования). При добавлении записи сумма пожертвований добавляется в поле DonationsReceived таблицы Campaigns (Кампании) и TotalDonatedField таблицы Donors (Спонсоры).
Щелкните здесь, чтобы просмотреть копию макроса, который можно вставить в конструктор макросов.
Чтобы просмотреть этот пример в конструкторе макросов, выполните следующие действия:
Откройте таблицу, для которой нужно записать событие После вставки.
На вкладке Таблица в группе После событий щелкните После вставки.
Выделите код в следующем примере и нажмите клавиши CTRL+C, чтобы скопировать его в буфер обмена.
Активируйте окно конструктора макросов и нажмите клавиши CTRL+V.
<DataMacros>
<DataMacro Event="AfterInsert">
<Statements>
<Comment>This data macro increments the DonationsReceived field in Campaigns and theAmountCollected field in Pledges </Comment>
<Action Name="SetLocalVar">
<Argument Name="Name">varAmount</Argument>
<Argument Name="Value">[Amount]</Argument>
</Action>
<ConditionalBlock>
<If>
<Condition>Not (IsNull([CampaignID]))</Condition>
<Statements>
<ForEachRecord>
<Data>
<Reference>Campaigns</Reference>
<WhereCondition>[ID]=[Donations].[CampaignID]</WhereCondition>
</Data>
<Statements>
<EditRecord>
<Data />
<Statements>
<Action Name="SetField">
<Argument Name="Field">[DonationsReceived]</Argument>
<Argument Name="Value">[DonationsReceived]+[varAmount]</Argument>
</Action>
</Statements>
</EditRecord>
</Statements>
</ForEachRecord>
</Statements>
</If>
</ConditionalBlock>
<ConditionalBlock>
<If>
<Condition>Not (IsNull([DonorID]))</Condition>
<Statements>
<ForEachRecord>
<Data>
<Reference>Donors</Reference>
<WhereCondition>[ID]=[Donations].[DonorID]</WhereCondition>
</Data>
<Statements>
<EditRecord>
<Data />
<Statements>
<Action Name="SetField">
<Argument Name="Field">[TotalDonated]</Argument>
<Argument Name="Value">[TotalDonated]+[varAmount]</Argument>
</Action>
</Statements>
</EditRecord>
</Statements>
</ForEachRecord>
</Statements>
</If>
</ConditionalBlock>
</Statements>
</DataMacro>
</DataMacros>
SetLocalVar
Name varAmount
Expression =[Amount]
If Not (IsNull([CampaignID])) Then
For Each Record In Campaigns
Where Condition =[ID]=[Donations].[CampaignID]
Alias
EditRecord
Alias
SetField
Name [DonationsReceived]
Value =[DonationsReceived]+[varAmount]
End EditRecord
End If
If Not (IsNull([DonorID])) Then
For Each Record In Donors
WhereCondition =[ID]=[Donations].[DonorID]
Alias
EditRecord
Alias
SetField
Name [TotalDonated]
Value =[TotalDonated]+[varAmount]
End EditRecord
End If