Событие WebBrowserControl.BeforeUpdate (Access)

Событие 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 и обратная связь.