Makroereignis "Nach Aktualisierung"
Gilt für: Access 2013, Office 2013
Das Ereignis Nach Aktualisierung tritt auf, wenn ein Datensatz geändert wurde.
Hinweis
Das Ereignis Nach Aktualisierung ist nur in Datenmakros verfügbar.
Bemerkungen
Mit dem Ereignis Nach Aktualisierung führen Sie sämtliche Aktionen nach dem Ändern eines Datensatzes aus. Häufig wird Nach Aktualisierung verwendet, um Geschäftsregeln 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. The following code example shows how to use an If statement to determine determine whether the PaidInFull field has been changed.
If Updated("PaidInFull") Then
/* Perform actions based on changes to the field. */
End If
Mit der folgenden Syntax können Sie auf einen vorherigen Wert in einem Feld zugreifen.
[Old].[Field Name]
For example, to access the previous value of the QuantityInStock field, use the following syntax.
[Old].[QuantityInStock]
Am Ende des Ereignisses Nach Aktualisierung werden die vorherigen Werte dauerhaft gelöscht.
In der folgenden Tabelle sind Makros ausgeführt, die im Ereignis Nach Aktualisierung 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 Aktualisierung erfasst wird, führen Sie die folgenden Schritte aus.
Öffnen Sie die Tabelle, für die Sie das Ereignis Nach Aktualisierung erfassen möchten.
Klicken Sie auf der Registerkarte Tabelle in der Gruppe Nachfolgeereignisse auf Nach Aktualisierung.
Im Makro-Designer wird ein leeres Datenmakro angezeigt.
Beispiel
Im folgenden Codebeispiel wird das Ereignis Nach Aktualisierung verwendet, um ein benanntes Datenmakro auszuführen, mit dem der Kommentar-Tabelle stets ein Datensatz hinzugefügt wird, wenn der Status eines Problems aktualisiert wird.
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 Aktualisierung erfassen möchten.
Klicken Sie auf der Registerkarte Tabelle in der Gruppe Nachfolgeereignisse auf Nach Aktualisierung.
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 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