Compartilhar via


Evento Form.Dirty (Access)

O evento Dirty ocorre quando o conteúdo do controle especificado é alterado.

Sintaxe

expressão. Sujo (Cancelar)

expressão Uma variável que representa um objeto Form.

Parâmetros

Nome Obrigatório/Opcional Tipo de dados Descrição
Cancel Obrigatório Integer A configuração determina se o evento Dirty ocorrerá. Definir o argumento Cancelar como True (1) cancela o evento Dirty .

Comentários

Inserir um caractere diretamente na caixa de combinação ou caixa de texto ou a alteração de propriedade de texto do controle usando uma macro ou o Visual Basic a definição são exemplos desse evento.

Modificar um registro de um formulário utilizando uma macro ou o Visual Basic não dispara esse evento. Você deve digitar os dados diretamente no registro ou definir a propriedade Text do controle.

Esse evento aplica-se apenas a um formulário acoplado e não a um relatório ou formulário não acoplado.

Para executar um macro ou procedimento de evento quando esse evento ocorrer, defina a propriedade OnDirty com o nome da macro ou como [procedimento do evento].

Executando uma macro ou procedimento de evento quando ocorre um evento Dirty , você pode determinar se o registro pode ser alterado. Você também poderá exibir uma mensagem e solicitar permissão de edição.

Alterar os dados em um registro usando o teclado faz com que eventos de teclado ocorram além de controlar eventos como o evento Dirty . Por exemplo, se você for para um novo registro e digitar um caractere ANSI em uma caixa de texto do registro, ocorrerão os seguintes eventos nesta ordem:

KeyDownKeyPressBeforeInsertDirtyKeyUp

Os eventos BeforeUpdate e AfterUpdate para um registro ocorrem depois que você insere os dados novos ou alterados no registro e passa para outro registro (ou escolha Salvar Registro no menu Registros ) e, portanto, após o evento Dirty para o registro.

Cancelar o evento Dirty fará com que as alterações no registro atual sejam revertidas. É equivalente a pressionar a chave Esc.

Exemplo

O exemplo a seguir habilita o botão btnUndo quando os dados são alterados. A sub-rotina UndoEdits( ) é chamada do evento Sujo dos controles da caixa de texto. Clicar no botão btnUndo habilitado restaura o valor original do controle usando a propriedade 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

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.