Evento Form. Delete (Access)Form.Delete event (Access)

Se produce cuando el usuario realiza alguna acción, como presionar la tecla Supr, para eliminar un registro, pero antes de que el registro se elimine realmente.Occurs when the user performs some action, such as pressing the Delete key, to delete a record, but before the record is actually deleted.

SintaxisSyntax

expresión. Eliminar (Cancelar)expression.Delete (Cancel)

expresión Variable que representa un objeto Form.expression A variable that represents a Form object.

ParámetrosParameters

NombreName Obligatorio/opcionalRequired/Optional Tipo de datosData type DescripciónDescription
CancelCancel ObligatorioRequired IntegerInteger El valor determina si se produce el evento Delete.The setting determines if the Delete event occurs. Si se establece el argumento Cancel en true (1), se cancela el evento Delete .Setting the Cancel argument to True (1) cancels the Delete event.

ComentariosRemarks

Para ejecutar una macro o un procedimiento de evento cuando se produzcan estos eventos, establezca la propiedad OnDelete, BeforeDelConfirmo AfterDelConfirm en el nombre de la macro o en [procedimiento de evento].To run a macro or event procedure when these events occur, set the OnDelete, BeforeDelConfirm, or AfterDelConfirm property to the name of the macro or to [Event Procedure].

Una vez eliminado un registro, este se almacena en un búfer temporal.After a record is deleted, it's stored in a temporary buffer. 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.The BeforeDelConfirm event occurs after the Delete event (or if you've deleted more than one record, after all the records are deleted, with a Delete event occurring for each record), but before the Delete Confirm dialog box is displayed. 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.Canceling the BeforeDelConfirm event restores the record or records from the buffer and prevents the Delete Confirm dialog box from being displayed.

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.The AfterDelConfirm event occurs after a record or records are actually deleted or after a deletion or deletions are canceled. 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.If the BeforeDelConfirm event isn't canceled, the AfterDelConfirm event occurs after the Delete Confirm dialog box is displayed. El evento AfterDelConfirm se produce incluso cuando se cancela el evento BeforeDelConfirm.The AfterDelConfirm event occurs even if the BeforeDelConfirm event is canceled. El procedimiento de evento AfterDelConfirm devuelve información de estado sobre la eliminación.The AfterDelConfirm event procedure returns status information about the deletion. 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.For example, you can use a macro or event procedure associated with the AfterDelConfirm event to recalculate totals affected by the deletion of records.

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.If you cancel the Delete event, the BeforeDelConfirm and AfterDelConfirm events don't occur and the Delete Confirm dialog box isn't displayed.

Nota

Los eventos BeforeDelConfirm y AfterDelConfirm no se producirán, 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 Opciones avanzadas del ** Acceso** cuadro de diálogo Opciones, disponible al elegir el botón de Microsoft Office y, a continuación, elija Opciones de Access.The BeforeDelConfirm and AfterDelConfirm events don't occur and the Delete Confirm dialog box isn't displayed if you clear the Record Changes check box under Confirm on the Advanced tab of the Access Options dialog box, available by choosing the Microsoft Office button, and then choosing Access Options.

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.By running a macro or an event procedure when the Delete event occurs, you can prevent a record from being deleted or allow a record to be deleted only under certain conditions. 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.You can also use a Delete event to display a dialog box asking whether the user wants to delete a record before it's deleted.

Para eliminar un registro, puede seleccionar Eliminar registro en el menú edición .To delete a record, you can choose Delete Record on the Edit menu. De este modo eliminará el registro actual (el que indica el selector de registro).This deletes the current record (the record indicated by the record selector). También puede elegir el selector de registros o elegir seleccionar registro en el menú edición para seleccionar el registro y, a continuación, presionar la tecla Suprimir para eliminarlo.You can also choose the record selector or choose Select Record on the Edit menu to select the record, and then press the Delete key to delete it. Si elige Eliminar registro, el selector de registro del registro actual o seleccionar registro, se producen los eventos Exit y LostFocus del control que tiene el enfoque.If you choose Delete Record, the record selector of the current record, or Select Record, the Exit and LostFocus events for the control that has the focus occur. 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.If you've changed any data in the record, the BeforeUpdate and AfterUpdate events for the record occur before the Exit and LostFocus events. Si elige el selector de registros de un registro diferente, también se produce el evento Current de ese registro.If you choose the record selector of a different record, the Current event for that record also occurs.

Una vez eliminado el registro, el enfoque se desplaza al Registro siguiente, seguido de los eventos Enter y **** GotFocus para el primer control de ese registro y, a continuación, los eventos Enter y GotFocus del primer control.After you delete the record, the focus moves to the next record following the deleted record, and the Current event for that record occurs, followed by the Enter and GotFocus events for the first control in that record.

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.The BeforeDelConfirm event then occurs, just before Microsoft Access displays the Delete Confirm dialog box asking you to confirm the deletion. Después de responder al cuadro de diálogo confirmando la eliminación o cancelándola, se produce el evento AfterDelConfirm.After you respond to the dialog box by confirming or canceling the deletion, the AfterDelConfirm event occurs.

Es posible eliminar más de un registro a la vez.You can delete one or more records at a time. El evento Delete se produce después de la eliminación de cada registro.The Delete event occurs after each record is deleted. 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.This enables you to access the data in each record before it's actually deleted, and selectively confirm or cancel each deletion in the Delete macro or event procedure. Cuando se elimina 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.When you delete more than one record, the Current event for the record following the last deleted record, and the Enter and GotFocus events for the first control in this record don't occur until all the records are deleted. 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.In other words, a Delete event occurs for each selected record, but no other events occur until all the selected records are deleted. Los eventos BeforeDelConfirm y AfterDelConfirm tampoco se producen hasta después de la eliminación de todos los registros seleccionados.The BeforeDelConfirm and AfterDelConfirm events also don't occur until all the selected records are deleted.

EjemploExample

En el ejemplo siguiente se muestra cómo puede evitar que un usuario elimine registros de una tabla.The following example shows how you can prevent a user from deleting records from a table. Para probar el ejemplo, agregue el procedimiento de evento siguiente a un formulario basado en una tabla.To try this example, add the following event procedure to a form that is based on a table. Sitúese en la vista Hoja de datos del formulario e intente eliminar un registro.Switch to form Datasheet view and try to delete a record.

Private Sub Form_Delete(Cancel As Integer) 
    Cancel = True 
    MsgBox "This record can't be deleted." 
End Sub

Soporte técnico y comentariosSupport and feedback

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación?Have questions or feedback about Office VBA or this documentation? 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.Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.