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:
Klicken Sie auf das Menü Datei und dann auf Optionen.
Klicken Sie im Dialogfeld Access-Optionen auf die Registerkarte Aktuelle Datenbank.
Klicken Sie im Bereich Navigation auf Navigationsoptionen.
Klicken Sie im Dialogfeld Navigationsoptionen auf Systemobjekte anzeigen und dann auf OK.
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