Событие ComboBox.Dirty (Access)
Событие Dirty возникает при изменении содержимого указанного элемента управления.
Синтаксис
expression. Dirty (Cancel)
Выражение Переменная, представляющая объект ComboBox .
Параметры
Имя | Обязательный или необязательный | Тип данных | Описание |
---|---|---|---|
Отмена | Обязательный | Integer | Параметр определяет, возникает ли событие Dirty . Если для аргумента Cancel задано значение True (1), событие Dirty будет отменено. |
Замечания
Примеры этого события включают ввод символа непосредственно в текстовое поле или поле со списком или изменение параметра свойства Text элемента управления с помощью макроса или Visual Basic.
Изменение записи в форме с помощью макроса или Visual Basic не вызывает это событие. Необходимо ввести данные непосредственно в запись или задать свойство Text элемента управления .
Это событие применяется только к привязанным формам, а не к форме или отчету без ограничений.
Чтобы выполнить макрос или процедуру события при возникновении этого события, задайте для свойства OnDirty имя макроса или [Процедура события].
Выполнив макрос или процедуру события при возникновении события Dirty , можно определить, можно ли изменить запись. Вы также можете отобразить сообщение и запросить разрешение на изменение.
Изменение данных в записи с помощью клавиатуры приводит к возникновению событий клавиатуры в дополнение к событиям управления, таким как событие Dirty . Например, при переходе к новой записи и вводе символа ANSI в текстовом поле записи в этом порядке происходят следующие события:
KeyDown → KeyPress → BeforeInsert → Dirty → KeyUp
События 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 и обратная связь.