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 |
Sí |
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:
Haga clic en el menú Archivo y, a continuación, haga clic en Opciones.
En el cuadro de diálogo Opciones de Access, haga clic en la pestaña Base de datos actual.
En la sección Navegación, haga clic en Opciones de navegación.
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.
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