Makroereignis „Nach Eingabe“
Gilt für: Access 2013, Office 2013
Das Ereignis Nach Eingabe tritt auf, wenn ein Datensatz hinzugefügt wurde.
Hinweis
Das Ereignis Nach Eingabe ist nur in Datenmakros verfügbar.
Bemerkungen
Mit dem Ereignis Nach Eingabe führen Sie sämtliche Aktionen nach dem Hinzufügen eines Datensatzes zu einer Tabelle aus. Häufig wird Nach Eingabe verwendet, um Geschäftsregeln und Workflows zu erzwingen, einen Aggregatgesamtwert zu aktualisieren oder Benachrichtigungen zu senden.
Mithilfe der Funktion Aktualisiert(„Feldname“) können Sie feststellen, ob sich ein Feld verändert hat. Das folgende Codebeispiel zeigt, wie man eine Wenn-Anweisung verwendet, um zu ermitteln, ob das Feld "VollständigBezahlt" geändert wurde.
If Updated("PaidInFull") Then
/* Perform actions based on changes to the field. */
End If
In der folgenden Tabelle sind Makros ausgeführt, die im Ereignis Nach Eingabe verwendet werden können.
Befehlstyp |
Befehl |
---|---|
Programmablauf |
|
Programmablauf |
|
Programmablauf |
|
Datenblock |
|
Datenblock |
|
Datenblock |
|
Datenblock |
|
Datenaktion |
|
Datenaktion |
|
Datenaktion |
|
Datenaktion |
|
Datenaktion |
|
Datenaktion |
|
Datenaktion |
|
Datenaktion |
|
Datenaktion |
|
Datenaktion |
|
Datenaktion |
|
Datenaktion |
|
Datenaktion |
Zum Erstellen eines Datenmakros, mit dem das Ereignis Nach Eingabe erfasst wird, führen Sie die folgenden Schritte aus.
Öffnen Sie die Tabelle, für die Sie das Ereignis Nach Eingabe erfassen möchten.
Klicken Sie auf der Registerkarte Tabelle in der Gruppe Nachfolgeereignisse auf Nach Eingabe.
Im Makro-Designer wird ein leeres Datenmakro angezeigt.
Beispiel
The following code example uses the After Insert event to perform some processing when a record is added to the Donations table. When a record is added, the amount of the donation is added to the DonationsReceived field in the Campaigns table and the TotalDonatedField in the Donors table.
Klicken Sie hier, um eine Kopie des Makros anzuzeigen, das Sie in Makro-Designer einfügen können.
Zum Anzeigen dieses Beispiels im Makro-Designer gehen Sie folgendermaßen vor:
Öffnen Sie die Tabelle, für die Sie das Ereignis Nach Eingabe erfassen möchten.
Klicken Sie auf der Registerkarte Tabelle in der Gruppe Nachfolgeereignisse auf Nach Eingabe.
Wählen Sie den Code im folgenden Codebeispiel aus, und drücken Sie dann STRG+C, um diesen in die Zwischenablage zu kopieren.
Aktivieren Sie das Makro-Designer-Fenster, und drücken Sie dann STRG+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