RaiseError, action de macro
S’applique à : Access 2013, Office 2013
L'action DéclencherErreur lève une exception qui peut être gérée par l'action de macro SurErreur.
Remarque
L’action DéclencherErreur est disponible uniquement dans les macros de données.
Setting
L’action DéclencherErreur utilise les arguments suivants.
Argument |
Obligatoire |
Description |
---|---|---|
Numéro d’erreur |
Oui |
Nombre ou expression résolu au type de données Long. |
Description de l’erreur |
Non |
Expression de type Chaîne qui décrit l’erreur. |
Remarques
Si l'action DéclencherErreur est appelée dans un événement de macro Avant la modification ou Avant la suppression, l'événement est annulé.
S'il n'y a aucune instruction SurErreur active qui gère les erreurs, l'erreur levée par l'action DéclencherErreur est ajoutée à la table système USysApplicationLog. Lorsque l'action DéclencherErreur écrit dans la table USysApplicationLog, la colonne Catégorie prend automatiquement la valeur Exécution.
Pour afficher la table USysApplicationLog, procédez comme suit :
Cliquez sur le menu Fichier , puis sur Options.
Dans la boîte dialogue Options Access, cliquez sur l'onglet Base de données active.
Dans la section Navigation, cliquez sur Options de navigation.
Dans la boîte de dialogue Options de navigation, cliquez sur Afficher les objets système, puis sur OK.
Cliquez sur OK pour fermer la boîte de dialogue Options Access.
Exemple
L’exemple suivant montre comment utiliser l’action RaiseError pour annuler l’événement de macro de données Avant de modifier. Lorsque le champ AssignedTo est mis à jour, un bloc de données LookupRecord est utilisé pour déterminer si le technicien affecté est actuellement affecté à une demande de service ouverte. Si cette valeur est vraie, l’événement Before Change est annulé et l’enregistrement n’est pas mis à jour.
Exemple de code fourni parMicrosoft 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