Поделиться через


Событие NavigationControl.Dirty (Access)

Событие Dirty возникает при изменении содержимого указанного элемента управления.

Синтаксис

expression. Dirty (Cancel)

Выражение Переменная, представляющая объект NavigationControl .

Параметры

Имя Обязательный или необязательный Тип данных Описание
Отмена Обязательный Integer Параметр определяет, возникает ли событие Dirty . Если для аргумента Cancel задано значение True (1), событие Dirty будет отменено.

Возвращаемое значение

Отсутствует

Примечания

Примеры этого события включают ввод символа непосредственно в текстовое поле или поле со списком или изменение параметра свойства Text элемента управления с помощью макроса или Visual Basic.

Изменение записи в форме с помощью макроса или Visual Basic не вызывает это событие. Необходимо ввести данные непосредственно в запись или задать свойство Text элемента управления .

Это событие применяется только к привязанным формам, а не к форме или отчету без ограничений.

Чтобы выполнить макрос или процедуру события при возникновении этого события, задайте для свойства OnDirty имя макроса или [Процедура события].

Выполнив макрос или процедуру события при возникновении события Dirty , можно определить, можно ли изменить запись. Вы также можете отобразить сообщение и запросить разрешение на изменение.

Изменение данных в записи с помощью клавиатуры приводит к возникновению событий клавиатуры в дополнение к событиям управления, таким как событие Dirty . Например, при переходе к новой записи и вводе символа ANSI в текстовом поле записи в этом порядке происходят следующие события:

KeyDownKeyPressBeforeInsertDirtyKeyUp

События BeforeUpdate и AfterUpdate для записи возникают после ввода новых или измененных данных в запись и перехода на другую запись (или выберите Сохранить запись в меню Записи ) и, следовательно, после события Dirty для записи.

Отмена события Dirty приведет к откату изменений текущей записи. Это эквивалентно нажатию клавиши ESC.

Пример

В следующем примере кнопка btnUndo включается при изменении данных. Подпрограмма UndoEdits( ) вызывается из события Dirty элементов управления текстовыми полями. Нажатие кнопки btnUndo включено восстанавливает исходное значение элемента управления с помощью свойства 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

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.