Evento Form.Delete (Access)

Se produce cuando el usuario realiza alguna acción, como presionar la tecla Eliminar, para eliminar un registro, pero antes de que el registro se elimine realmente.

Sintaxis

expresión. Eliminar (cancelar)

expresión Variable que representa un objeto Form.

Parameters

Nombre Obligatorio/opcional Tipo de datos Descripción
Cancel Obligatorio Integer El valor determina si se produce el evento Delete. Al establecer el argumento Cancel en True (1), se cancela el evento Delete .

Comentarios

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

Una vez eliminado un registro, este se almacena en un búfer temporal. El evento BeforeDelConfirm se produce después del evento Delete (o, si se ha eliminado más de un registro, después de la eliminación de todos ellos, que habrá provocado un evento Delete por cada uno), pero antes de que aparezca el cuadro de diálogo Confirmar eliminació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.

El evento AfterDelConfirm se produce después de que el registro o registros se eliminen realmente, o después de que se cancelen las eliminaciones. 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. El procedimiento de evento AfterDelConfirm devuelve información de estado sobre la eliminación. Por ejemplo, puede usar una macro o un procedimiento de evento asociado al evento AfterDelConfirm para recalcular los totales a los que afecte la eliminación de registros.

Si cancela un evento Delete, los eventos BeforeDelConfirm y AfterDelConfirm no se producirán, ni tampoco aparecerá el cuadro de diálogo Confirmar eliminación.

Nota:

Los eventos BeforeDelConfirm y AfterDelConfirm no se producen y el cuadro de diálogo Confirmar eliminación no se muestra si desactiva la casilla Cambios de registro en Confirmar en la pestaña Opciones avanzadas del cuadro de diálogo Opciones de acceso , disponible seleccionando el botón Microsoft Office y, a continuación, eligiendo Opciones de acceso.

Al ejecutar una macro o un procedimiento de evento cuando se produce el evento Delete, puede evitar que se elimine un registro, o permitir que se elimine solo cuando se produzcan ciertas 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.

Para eliminar un registro, puede elegir Eliminar registro en el menú Editar . De este modo eliminará el registro actual (el que indica el selector de registro). También puede elegir el selector de registros o seleccionar Seleccionar registro en el menú Editar para seleccionar el registro y, a continuación, presionar la tecla Eliminar para eliminarlo. Si elige Eliminar registro, el selector de registros del registro actual o Seleccionar registro, se producen los eventos Exit y LostFocus del control que tiene el foco. Si ha modificado algún dato del registro, se producirán los eventos BeforeUpdate y AfterUpdate para el registro antes que los eventos Exit y LostFocus. Si elige el selector de registros de un registro diferente, también se produce el evento Current para ese registro.

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.

En ese momento se produce el evento BeforeDelConfirm, inmediatamente antes de que Microsoft Access muestre el cuadro de diálogo Confirmar eliminación, que le solicitará 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. Al eliminar más de un registro, el evento Current del registro que sigue al último registro eliminado y los eventos Enter y GotFocus del primer control de este registro no se producen hasta que se eliminan todos los registros. En otras palabra, el evento Delete se produce para cada registro seleccionado, pero no ocurre ningún otro evento hasta que se eliminan todos los registros seleccionados. Los eventos BeforeDelConfirm y AfterDelConfirm tampoco se producen hasta después de la eliminación de todos los registros seleccionados.

Ejemplo

En el ejemplo siguiente se muestra cómo puede evitar que un usuario elimine registros de una tabla. Para probar el ejemplo, agregue el procedimiento de evento siguiente a un formulario basado en una tabla. Sitúese en la vista Hoja de datos del formulario e intente eliminar un registro.

Private Sub Form_Delete(Cancel As Integer) 
    Cancel = True 
    MsgBox "This record can't be deleted." 
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.