Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Событие BeforeUpdate происходит до обновления измененных данных в элементе управления или записи.
Синтаксис
выражение. BeforeUpdate (Отмена)
выражение Переменная, представляющая объект WebBrowserControl .
Параметры
| Имя | Обязательный или необязательный | Тип данных | Описание |
|---|---|---|---|
| Отмена | Обязательный | Integer | Этот параметр определяет, возникает ли событие BeforeUpdate . Присвоение аргументу Cancel значения True (1) отменяет событие BeforeUpdate . |
Возвращаемое значение
Отсутствует
Примечания
Изменение данных в элементе управления с помощью Visual Basic или макроса, содержащего действие SetValue, не запускает эти события для элемента управления. Однако если затем перейти к другой записи или сохранить запись, произойдет событие BeforeUpdate формы.
Чтобы запустить макрос или процедуру события при возникновении этого события, задайте для свойства BeforeUpdate имя макроса или значение [Процедура события].
Это событие не применяется к кнопкам параметров, полям проверки или переключателям в группе параметров. Она применяется только к самой группе опций.
Событие BeforeUpdate запускается при обновлении элемента управления или записи. В записи измененные данные в каждом элементе управления обновляются, когда элемент управления теряет фокус или когда пользователь нажимает ВВОД или TAB. Если фокус покидает запись или пользователь нажимает кнопку Сохранить запись в меню Записи , обновляется вся запись и данные сохраняются в базе данных.
Если ввести новые или измененные данные в элемент управления в форме, а затем перейти к другой записи, или сохранить запись, выбрав в меню Записи команду Сохранить запись, событие AfterUpdate для формы происходит сразу после события AfterUpdate для элемента управления.
При переходе к другой записи происходят события Exit и LostFocus для элемента управления, за которыми следует событие Current для записи, в которую вы переместились, и события Enter и GotFocus для первого элемента управления в этой записи. Чтобы выполнить макрос или процедуру события AfterUpdate без выполнения макросов или процедур события Exit и LostFocus , сохраните запись с помощью команды Save Record в меню Records .
Макросы и процедуры событий BeforeUpdate выполняются только в случае изменения данных в элементе управления. Это событие не происходит при изменении значения в вычисляемом элементе управления. Макросы beforeUpdate и процедуры обработки событий для формы выполняются только при изменении данных в одном или нескольких элементах управления в записи.
В формах событие BeforeUpdate можно использовать для отмены обновления записи перед переходом к другой записи.
Если пользователь вводит новое значение в элементе управления, параметр свойства OldValue не изменяется до тех пор, пока данные не будут сохранены (запись не будет обновлена). Если отменить обновление, значение свойства OldValue заменяет существующее значение в элементе управления.
Событие BeforeUpdate часто используется для проверки данных, особенно при выполнении сложных проверок, например:
- Включать условия для нескольких значений в форме.
- Отображение разных сообщений об ошибках для разных введенных данных.
- Может быть переопределено пользователем.
- Содержат ссылки на элементы управления в других формах или пользовательские функции.
Примечание.
Для выполнения простых проверок или более сложных проверок, таких как требование значения в поле или проверка нескольких элементов управления в форме, можно использовать свойство ValidationRule для элементов управления, а также свойства ValidationRule и Mandatory для полей и записей в таблицах.
Ошибка времени выполнения возникает при попытке изменить данные, содержащиеся в элементе управления, который активировал событие BeforeUpdate в процедуре события.
Пример
В приведенном ниже примере показано, как с помощью процедуры обработки события BeforeUpdate можно проверка, не введено ли название продукта в базу данных. После того как пользователь введет название продукта в поле "НазваниеТовара ", значение сравнивается с полем "НазваниеТовара " в таблице "Товары ". Если в таблице "Товары " есть совпадающее значение, отображается сообщение, информирующее пользователя о том, что товар уже был введен.
В этом примере добавьте следующую процедуру обработки событий в форму Products , содержащую текстовое поле ProductName.
Private Sub ProductName_BeforeUpdate(Cancel As Integer)
If(Not IsNull(DLookup("[ProductName]", _
"Products", "[ProductName] ='" _
& Me!ProductName & "'"))) Then
MsgBox "Product has already been entered in the database."
Cancel = True
Me!ProductName.Undo
End If
End Sub
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.