Freigeben über


RaiseError-Makroaktion

Gilt für: Access 2013, Office 2013

Mit der AuslösenFehler -Aktion wird eine Ausnahme ausgelöst, die von der BeiFehler -Makroaktion behandelt werden kann.

Hinweis

Die AuslösenFehler-Aktion ist nur in Datenmakros verfügbar.

Einstellung

Die AuslösenFehler-Aktion kann mit den folgenden Argumenten verwendet werden.

Argument

Erforderlich

Beschreibung

Fehlernummer

Ja

Eine Zahl oder ein Ausdruck, die bzw. der zu einem Long-Datentyp aufgelöst wird.

Fehlerbeschreibung

Nein

Ein Zeichenfolgenausdruck, der den Fehler beschreibt.

Hinweise

Bei einem Aufruf der AuslösenFehler -Aktion in einem Makroereignis des Typs Vor Änderung oder Vor Löschung wird das Ereignis abgebrochen.

Wenn keine aktive BeiFehler -Anweisung zur Fehlerbehandlung vorhanden ist, wird der von der AuslösenFehler -Aktion ausgelöste Fehler der USysApplicationLog -Systemtabelle hinzugefügt. Wenn die AuslösenFehler -Aktion in der USysApplicationLog -Tabelle schreibt, wird die Kategorie -Spalte automatisch auf Ausführung festgelegt.

Zum Anzeigen der USysApplicationLog -Tabelle gehen Sie wie folgt vor:

  1. Klicken Sie auf das Menü Datei und dann auf Optionen.

  2. Klicken Sie im Dialogfeld Access-Optionen auf die Registerkarte Aktuelle Datenbank.

  3. Klicken Sie im Bereich Navigation auf Navigationsoptionen.

  4. Klicken Sie im Dialogfeld Navigationsoptionen auf Systemobjekte anzeigen und dann auf OK.

  5. Klicken Sie auf OK, um das Dialogfeld Access-Optionen zu schließen.

Beispiel

Das folgende Beispiel zeigt, wie Sie die Aktion RaiseError verwenden, um das Datenmakroereignis "Before Change" abzubrechen. Wenn das Feld AssignedTo aktualisiert wird, wird ein LookupRecord-Datenblock verwendet, um zu bestimmen, ob der zugewiesene Techniker derzeit einer offenen Serviceanfrage zugewiesen ist. Wenn dies zutrifft, wird das Ereignis Before Change abgebrochen, und der Datensatz wird nicht aktualisiert.

Der Beispielcode stammt von:Microsoft Access 2010 Programmer's Reference.

    /* Get the name of the technician  */
    Look Up A Record In tblTechnicians
        Where Condition =[tblTechnicians].[ID]=[tblServiceRequests].[AssignedTo]
    SetLocalVar
        Name TechName
        Expression [tblTechnicians].[FirstName] & " " & [tblTechnicians].[LastName]
    /* End LookUpRecord  */
    
    If Updated("AssignedTo") Then
        Look Up A Record In tblServiceRequests
            Where Condition SR.[AssignedTo]=tblServiceRequests[AssignedTo] And 
                SR.[ID]<>tblServiceRequests.[ID] And IsNull(SR.[ActualCompletionDate])
            Alias SR
            RaiseError
                Error Number 1234
                Error Description ="Cannot assign a request to the specified technician: " & [TechName]
    
    End If