Evento Form. Dirty (Access)Form.Dirty event (Access)

El evento Dirty se produce cuando cambia el contenido del control especificado.The Dirty event occurs when the contents of the specified control changes.

SintaxisSyntax

expresión. Sucio (Cancelar)expression.Dirty (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 La opción determina si se produce el evento Dirty.The setting determines if the Dirty event occurs. Si se establece el argumento Cancel en true (1), se cancela el evento Dirty .Setting the Cancel argument to True (1) cancels the Dirty event.

ComentariosRemarks

Ejemplos de este evento son la inserción de un carácter directamente en el cuadro de texto o cuadro combinado o cambiar la propiedad Text del control con una macro o Visual Basic.Examples of this event include entering a character directly in the text box or combo box or changing the control's Text property setting by using a macro or Visual Basic.

Modificación de un registro dentro de un formulario mediante una macro o Visual Basic no desencadena este evento.Modifying a record within a form by using a macro or Visual Basic doesn't trigger this event. Es necesario escribir los datos directamente en el registro o establecer la propiedad Text del control.You must type the data directly into the record or set the control's Text property.

Este evento sólo se aplica a formularios dependientes, no a un informe o formulario independiente.This event applies only to bound forms, not an unbound form or report.

Para ejecutar una macro o procedimiento de evento cuando se produzca este evento, establezca la propiedad OnDirty en el nombre de la macro o en [procedimiento de evento].To run a macro or event procedure when this event occurs, set the OnDirty property to the name of the macro or to [Event Procedure].

Mediante la ejecución de una macro o procedimiento de evento cuando se produce un evento Dirty , se puede determinar si se puede cambiar el registro.By running a macro or event procedure when a Dirty event occurs, you can determine if the record can be changed. También se puede mostrar un mensaje y solicitar permiso de edición.You can also display a message and ask for edit permission.

Si se modifican los datos de un registro con el teclado, se producen eventos de teclado además de los eventos de control, como el evento Dirty .Changing the data in a record by using the keyboard causes keyboard events to occur in addition to control events like the Dirty event. Por ejemplo, si se sitúa en un nuevo registro y escribe un carácter ANSI en un cuadro de texto del mismo, se producirán los eventos siguientes, en el orden indicado:For example, if you move to a new record and type an ANSI character in a text box in the record, the following events occur in this order:

KeyDownKeyPressBeforeInsertDirtyKeyUpKeyDownKeyPressBeforeInsertDirtyKeyUp

Los eventos BeforeUpdate y AfterUpdate para un registro se producen después de especificar los datos nuevos o modificados en el registro y desplazarse a otro registro (o elegir Guardar registro en el menú registros ) y, por tanto, después de los modificados evento para el registro.The BeforeUpdate and AfterUpdate events for a record occur after you enter the new or changed data in the record and move to another record (or choose Save Record on the Records menu), and therefore after the Dirty event for the record.

Si se cancela el evento Dirty , se desharán los cambios realizados en el registro actual.Canceling the Dirty event will cause the changes to the current record to be rolled back. Equivale a presionar la tecla ESC.It is equivalent to pressing the Esc key.

EjemploExample

En el siguiente ejemplo se habilita el botón btnUndo cuando se modifican datos.The following example enables the btnUndo button when data is changed. Se llama a la subrutina UndoEdits () desde el evento Dirty de los controles de cuadro de texto.The UndoEdits( ) subroutine is called from the Dirty event of text box controls. Al hacer clic en el botón btnUndo habilitado se restaura el valor original del control mediante la propiedad OldValue.Clicking the enabled btnUndo button restores the original value of the control by using the OldValue property.

Private Sub Form_Dirty() 
 If Me.Dirty Then 
 Me!btnUndo.Enabled = True ' Enable button. 
 Else 
 Me!btnUndo.Enabled = False ' Disable button. 
 End If 
End Sub 
 
Sub btnUndo_Click() 
 Dim ctlC As Control 
 ' For each control. 
 For Each ctlC in Me.Controls 
 If ctlC.ControlType = acTextBox Then 
 ' Restore Old Value. 
 ctlC.Value = ctlC.OldValue 
 End If 
 Next ctlC 
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.