Compartir a través de


Evento Form.Dirty (Access)

El evento Dirty se produce cuando cambia el contenido del control especificado.

Sintaxis

expresión. Sucio (cancelar)

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 Dirty. Al establecer el argumento Cancel en True (1), se cancela el evento Dirty .

Comentarios

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.

Modificación de un registro dentro de un formulario mediante una macro o Visual Basic no desencadena este evento. Es necesario escribir los datos directamente en el registro o establecer la propiedad Text del control.

Este evento sólo se aplica a formularios dependientes, no a un informe o formulario independiente.

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].

Al ejecutar una macro o un procedimiento de evento cuando se produce un evento Dirty , puede determinar si se puede cambiar el registro. También se puede mostrar un mensaje y solicitar permiso de edición.

Cambiar los datos de un registro mediante el teclado hace que se produzcan eventos de teclado además de eventos de control como el evento Dirty . 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:

KeyDownKeyPressBeforeInsertDirtyKeyUp

Los eventos BeforeUpdate y AfterUpdate de un registro se producen después de escribir los datos nuevos o modificados en el registro y moverse a otro registro (o elegir Guardar registro en el menú Registros ) y, por tanto, después del evento Dirty para el registro.

La cancelación del evento Dirty hará que se revierta los cambios en el registro actual. Equivale a presionar la tecla Esc.

Ejemplo:

En el siguiente ejemplo se habilita el botón btnUndo cuando se modifican datos. Se llama a la subrutina UndoEdits( ) desde el evento Dirty de los controles de cuadro de texto. Al hacer clic en el botón btnUndo habilitado se restaura el valor original del control mediante la propiedad OldValue.

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 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.