Share via


Evento Form.BeforeDelConfirm (Access)

El evento BeforeDelConfirm se produce después de que el usuario elimine del búfer uno o más registros, pero antes de que Microsoft Access muestra un cuadro de diálogo solicitando al usuario que confirme las eliminaciones.

Sintaxis

expresión. BeforeDelConfirm (Cancelar, Respuesta)

expresión Variable que representa un objeto Form.

Parameters

Nombre Obligatorio/opcional Tipo de datos Descripción
Cancel Obligatorio Integer La opción determina si se produce el evento BeforeDelConfirm. Si el argumento de Cancel se establece en True cancela el evento BeforeDelConfirm e impide que aparezca el cuadro de diálogo Confirmar eliminación. Si se cancela el evento, se restauran los registros originales, pero el evento AfterDelConfirm se sigue produciendo. Si Cancel se establece en True, se omite el argumento de Response. Si Cancel se establece en False (0), que es de forma predeterminada, Access usa el valor del argumento Response para determinar el tipo de respuesta al evento Delete .
Respuesta Obligatorio Integer Constante intrínseca que determina si Access muestra el cuadro de diálogo Eliminar confirmación que pregunta si se debe eliminar el registro. acDataErrContinue continúa sin mostrar el cuadro de diálogo Confirmar eliminación. Si se establece el argumento de Cancel en False y el argumento de Response en acDataErrContinue permite que Microsoft Access elimine registros sin preguntar al usuario. acDataErrDisplay muestra el cuadro de diálogo Confirmar eliminación. El valor predeterminado es acDataErrDisplay.

Comentarios

Para ejecutar una macro o procedimiento de evento cuando se produzcan estos eventos, establezca la propiedad BeforeDelConfirm en el nombre de la macro o en [procedimiento de evento].

Después de elimina un registro, se almacena en un búfer temporal. En una base de datos de Access , el evento BeforeDelConfirm se produce después del evento Delete (o si ha eliminado más de un registro, después de eliminar todos los registros, con un evento Delete que se produce para cada registro), pero antes de que se muestre el cuadro de diálogo Eliminar confirmación . Al cancelar el evento BeforeDelConfirm se restaura el registro o registros del búfer y se evita que aparezca el cuadro de diálogo Confirmar eliminación.

En una base de datos de Access, el evento AfterDelConfirm se produce después de que un registro o registros se eliminen realmente o después de que se cancele una eliminación o eliminación. Si no se cancela el evento BeforeDelConfirm, se producirá el evento AfterDelConfirm después de que aparezca el cuadro de diálogo Confirmar eliminación. El evento AfterDelConfirm se produce incluso cuando se cancela el evento BeforeDelConfirm.

Si cancela el evento Delete , no se produce el evento BeforeDelConfirm y no se muestra el cuadro de diálogo Confirmar eliminación .

En un proyecto de Access (.adp), el evento BeforeDelConfirm se produce antes del evento Delete . Para evitar la apertura de transacciones innecesarias en Microsoft SQL Server, Access le pide que confirme la eliminación antes de abrir la transacción. Si confirma la eliminación, Access abre una transacción en SQL Server, emite la instrucción DELETE para eliminar el registro o los registros y desencadena el evento Delete del formulario. Si elige No cuando se le pide que confirme la eliminación, Access no abre una transacción en SQL Server para eliminar el registro y no desencadena el evento Delete del formulario.

Nota:

[!NOTA] El evento BeforeDelConfirm no se produce, ni tampoco aparecerá el cuadro de diálogo Confirmar eliminación si desactiva la casilla de verificación Cambios en los registros en Confirmar en la ficha Edición del cuadro de diálogo Opciones de Access.

Mediante la ejecución de una macro o un procedimiento de evento cuando se produce el evento Delete, puede impedir que se va a eliminar un registro o permitir que se va a eliminar solo en determinadas condiciones. También puede usar un evento Delete para mostrar un cuadro de diálogo que pregunte al usuario si quiere eliminar un registro antes de hacerlo.

Después de eliminar el registro, el foco se mueve al siguiente registro después del registro eliminado y se produce el evento Current para ese registro, seguido de los eventos Enter y GotFocus para el primer control de ese registro.

A continuación, se produce el evento BeforeDelConfirm , justo antes de que Access muestre el cuadro de diálogo Confirmar eliminación que le pide que confirme la eliminación. Después de responder al cuadro de diálogo confirmando la eliminación o cancelándola, se produce el evento AfterDelConfirm.

Es posible eliminar más de un registro a la vez. El evento Delete se produce después de la eliminación de cada registro. De esta forma tendrá acceso a los datos de cada registro antes de su eliminación efectiva, y podrá confirmar o cancelar cada eliminación en la macro o procedimiento de evento Delete. Cuando se elimina más de un registro, el evento Current del registro siguiente al último eliminado y los eventos Enter y GotFocus de su primer control no se producen hasta después de la eliminación de todos los registros. En otras palabras, se produce un evento Delete por cada registro seleccionado, pero ocurre ningún otro evento hasta que se eliminan todos los registros seleccionados. El evento BeforeDelConfirm no se produce hasta que se eliminan todos los registros seleccionados.

Ejemplo:

En el siguiente ejemplo se muestra cómo puede usar el procedimiento de evento BeforeDelConfirm para suprimir el cuadro de diálogo Confirmar eliminación y mostrar un cuadro de diálogo personalizado cuando se elimina un registro. También se muestra cómo puede usar la AfterDelConfirm al procedimiento de evento para mostrar un mensaje que indica si se ha realizado la eliminación de la forma habitual o si ha sido cancelada en Visual Basic o por el usuario.

Private Sub Form_BeforeDelConfirm(Cancel As Integer, _ 
 Response As Integer) 
 ' Suppress default Delete Confirm dialog box. 
 Response = acDataErrContinue 
 ' Display custom dialog box. 
 If MsgBox("Delete this record?", vbOKCancel) = vbCancel Then 
 Cancel = True 
 End If 
End Sub 
 
Private Sub Form_AfterDelConfirm(Status As Integer) 
 Select Case Status 
 Case acDeleteOK 
 MsgBox "Deletion occurred normally." 
 Case acDeleteCancel 
 MsgBox "Programmer canceled the deletion." 
 Case acDeleteUserCancel 
 MsgBox "User canceled the deletion." 
 End Select 
End Sub

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.