Share via


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 :

  1. Cliquez sur le menu Fichier , puis sur Options.

  2. Dans la boîte dialogue Options Access, cliquez sur l'onglet Base de données active.

  3. Dans la section Navigation, cliquez sur Options de navigation.

  4. Dans la boîte de dialogue Options de navigation, cliquez sur Afficher les objets système, puis sur OK.

  5. 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