Compartir a través de


ProvocarError (acción de macro)

Se aplica a: Access 2013, Office 2013

La acción ProvocarError produce una excepción que se puede controlar mediante la acción de macro AlOcurrirError.

Nota:

La acción ProvocarError solo está disponible en macros de datos.

Configuración

La acción ProvocarError utiliza los siguientes argumentos.

Argumento

Necesario

Descripción

Número de error

Un número o una expresión que da como resultado el tipo de datos Long .

Descripción del error

No

Una expresión de cadena que describe el error.

Comentarios

Si se llama a la acción ProvocarError en un evento de macro Cambio previo o Eliminación previa, se cancela el evento.

Si no hay ninguna instrucción AlOcurrirError activa que esté controlando los errores, el error provocado por la acción ProvocarError se agrega a la tabla de sistema USysApplicationLog. Cuando la acción ProvocarError se escribe en la tabla USysApplicationLog, la columna Categoría se establece automáticamente en Ejecución.

Para ver la tabla USysApplicationLog, siga estos pasos:

  1. Haga clic en el menú Archivo y, a continuación, haga clic en Opciones.

  2. En el cuadro de diálogo Opciones de Access, haga clic en la pestaña Base de datos actual.

  3. En la sección Navegación, haga clic en Opciones de navegación.

  4. En el cuadro de diálogo Opciones de navegación, haga clic en Mostrar objetos del sistema y, a continuación, haga clic en Aceptar.

  5. Haga clic en Aceptar para descartar el cuadro de diálogo Opciones de Access.

Ejemplo

En el ejemplo siguiente se muestra cómo usar la acción RaiseError para cancelar el evento de macro de datos Antes de cambiar. Cuando se actualiza el campo AssignedTo, se usa un bloque de datos LookupRecord para determinar si el técnico asignado está asignado actualmente a una solicitud de servicio abierta. Si esto es true, el evento Antes de cambiar se cancela y el registro no se actualiza.

Código de ejemplo proporcionado por la Referencia del programador de Microsoft Access 2010.

    /* 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