Freigeben über


Makroereignis "Nach Löschvorgang"

Gilt für: Access 2013, Office 2013

Das Ereignis Nach Löschvorgang tritt auf, nachdem ein Datensatz gelöscht wurde.

Hinweis

Das Ereignis Nach Löschvorgang ist nur in Datenmakros verfügbar.

Hinweise

Mit dem Ereignis Nach Löschvorgang führen Sie sämtliche Aktionen nach dem Löschen eines Datensatzes aus. Häufig wird Nach Löschvorgang verwendet, um Geschäftsregeln und Workflows zu erzwingen, einen Aggregatgesamtwert zu aktualisieren oder Benachrichtigungen zu senden.

Wenn das Ereignis Nach Löschvorgang aufgetreten ist, bleiben die im gelöschten Datensatz enthaltenen Werte verfügbar. Sie können einen gelöschten Wert verwenden, um eine Summe zu inkrementieren oder zu verringern, einen Überwachungspfad zu erstellen oder mit einem vorhandenen Wert in einem WhereCondition-Argument zu vergleichen.

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 Wert im gelöschten Datensatz zugreifen.

[Old].[Field Name]

For example, to access the value of the QuantityInStock field in the deleted record, use the following syntax.

[Old].[QuantityInStock]

Am Ende des Ereignisses Nach Löschvorgang werden die Werte im gelöschten Datensatz dauerhaft gelöscht.

Die folgenden Makrobefehle können im After Delete-Ereignis verwendet werden.

Befehlstyp

Befehl

Programmablauf

Kommentar-Makroanweisung

Programmablauf

Gruppieren-Makroanweisung

Programmablauf

Wenn...Dann...Sonst-Makroblock

Datenblock

DatensatzErstellen-Makroaktion

Datenblock

DatensatzBearbeiten-Makroaktion

Datenblock

FürJedenDatensatz-Makroaktion

Datenblock

LookupRecord-Makroaktion

Datenaktion

CancelRecordChange-Makroaktion

Datenaktion

ClearMacroError-Makroaktion

Datenaktion

DeleteRecord-Makroaktion

Datenaktion

ExitForEachRecord-Makroaktion

Datenaktion

LogEvent-Makroaktion

Datenaktion

OnError-Makroaktion

Datenaktion

RaiseError-Makroaktion

Datenaktion

RunDataMacro-Makroaktion

Datenaktion

SendEmail-Makroaktion

Datenaktion

SetField-Makroaktion

Datenaktion

SetLocalVar-Makroaktion

Datenaktion

StopAllMacros-Makroaktion

Datenaktion

StopMacro-Makroaktion

Zum Erstellen eines Datenmakros, mit dem das Ereignis Nach Löschvorgang erfasst wird, führen Sie die folgenden Schritte aus.

  1. Öffnen Sie die Tabelle, für die Sie das Ereignis Nach Löschvorgang erfassen möchten.

  2. Klicken Sie auf der Registerkarte Tabelle in der Gruppe Nachfolgeereignisse auf Nach Löschvorgang.

Im Makro-Designer wird ein leeres Datenmakro angezeigt.

Beispiel

The following code example uses the After Delete event to perform some processing when a record is deleted from the Donations table. When a record is deleted, the amount of the donation is subracted form the DonationsReceived field in the DonationsReceived 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:

  1. Öffnen Sie die Tabelle, für die Sie das Ereignis Nach Löschvorgang erfassen möchten.

  2. Klicken Sie auf der Registerkarte Tabelle in der Gruppe Nachfolgeereignisse auf Nach Löschvorgang.

  3. Wählen Sie den unten dargestellten Code aus, und drücken Sie dann STRG+C, um diesen in die Zwischenablage zu kopieren.

  4. Aktivieren Sie das Makro-Designer-Fenster, und drücken Sie dann STRG+V.

    <?xml version="1.0" encoding="UTF-16" standalone="no"?> 
    <DataMacros xmlns="http://schemas.microsoft.com/office/accessservices/2009/04/application"> 
      <DataMacro Event="AfterDelete"> 
        <Statements> 
          <Comment>Initialize a variable and assign the old</Comment> 
          <Action Name="SetLocalVar"> 
            <Argument Name="Name">varAmount</Argument> 
            <Argument Name="Value">[Old].[Amount]</Argument> 
          </Action> 
          <ConditionalBlock> 
            <If> 
              <Condition>Not (IsNull([Old].[CampaignID]))</Condition> 
              <Statements> 
                <ForEachRecord> 
                  <Data> 
                    <Reference>Campaigns</Reference> 
                    <WhereCondition>[ID]=[Old].[CampaignID]</WhereCondition> 
                  </Data> 
                  <Statements> 
                    <EditRecord> 
                      <Data /> 
                      <Statements> 
                        <Action Collapsed="true" 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([Old].[DonorID]))</Condition> 
              <Statements> 
                <ForEachRecord> 
                  <Data> 
                    <Reference>Donors</Reference> 
                    <WhereCondition>[ID]=[Old].[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   =[Old].[Amount] 
     
    If   Not(IsNull([Old].[CampaignID]]))   Then 
     
         For Each Record In     Campaigns 
            Where Condition     =[ID]=[Old].[CampaignID] 
                      Alias 
            EditRecord 
                      Alias 
                  SetField   ([DonationsReceived], [DonationsReceived] - [varAmount]) 
            End EditRecord 
     
    End If 
     
    If   Not(IsNull([Old].[DonorID]]))   Then 
     
         For Each Record In    Donors 
            Where Condition     =[ID]=[Old].[DonorID] 
                      Alias 
            EditRecord 
                      Alias 
     
              SetField 
                             Name   [TotalDonated] 
                            Value   =[TotalDonated]-[varAmount] 
            End EditRecord 
    End If