На главную страничку учебника Visual BasicСобытия элемента Data Элемент управления Data поддерживает три события, которые можно использовать для расширения приложения базы данных: Validate, Reposition и Error. Эти события позволяют переопределять некоторые моменты умолчательного поведения элемента управления Data. Событие Validate Чтобы проверить данные до того, как запись будет сохранена в базе данных, можно использовать событие Validate. Это событие происходит непосредственно перед тем, как Visual Basic переносит изменения из связанных элементов управления в базу данных и перемещает указатель текущей записи на другую запись базы данных. Событие Validate можно использовать для вывода пользователям запроса на подтверждение изменений. Объявление процедуры события Validate имеет следующий синтаксис: Private Sub Data1_Validate (Action As Integer, Save As Integer) Параметр Action Параметр Action указывает операцию, которая обусловила событие Validate. Событие Validate может произойти в результате одной из следующих операций:
Чтобы отменить эти действия, нужно установить для параметра Action значение vbDataActionCancel. Параметр Save Параметр Save указывает, изменены ли связанные данные. Если Save — True, связанные данные были изменены. Чтобы отменить сохранение, можно установить Save в False. В следующем фрагменте кода у пользователя запрашивается подтверждение изменений в базе данных. Если пользователь отвечает Нет, изменения отменяются. Private Sub Data1_Validate (Action As Integer, Save As Integer) Dim
iResponse As Integer End Sub Событие Reposition Событие Reposition используется для изменения вида формы или выполнения некоторых действий при перемещении к новой записи. Это событие происходит, когда Visual Basic перемещает указатель текущей записи на другую запись в базе данных либо при первоначальном открытии базы данных. В следующем фрагменте показано, как вывести на экран номер текущей записи с использованием свойства AbsolutePosition объекта Recordset: Private
Sub
Data1_Reposition() Когда пользователь перемещается на новую запись, используя элемент управления Data, может потребоваться отображать данные в формы по-разному, в зависимости от конкретных значений текущей записи. Например, в форме для работы с записями служащих могут по-разному отображаться данные для постоянных служащих, подрядчиков, служащих со сдельной оплатой или служащих с окладом. Чтобы задействовать выбор правильного режима отображения для каждой записи, можно поместить соответствующий код в событие Reposition. В следующем фрагменте событие Reposition используется для изменения состояния формы: Private Sub Data1_Reposition() Data1.Caption
= Datal.Recordset.AbsolutePosition End Sub Форма, содержащая эту процедуру, выглядит следующим образом: Событие Error Событие Error возникает, когда пользователь взаимодействует с элементом управления Data и происходит ошибка доступа к данным. Для добавления к элементу управления Data обработки ошибок можно использовать событие Error. Например, если пользователь изменяет поле и затем щелкает кнопку элемента управления Data, чтобы переместиться к следующей записи, элемент управления Data модифицирует текущую запись. Если в течение модификации имеет место ошибка доступа к данным, происходит событие Error. После того как произошла ошибка, значения в связанных полях не будут изменяться. Пользователь может исправить значения и затем щелкнуть элемент управления Data, чтобы попытаться модифицировать запись снова. Вывод на экран сообщения об ошибке Если к событию Error не добавлен код обработки ошибок и, когда пользователь взаимодействует с элементом управления Data, возвращается ошибка, Visual Basic выведет на экран сообщение об ошибке и продолжит выполнение приложения. Если требуется подавить вывод стандартного сообщения об ошибке, можно установить параметр Response процедуры Еггог() в ноль и выводить на экран пользовательское сообщение об ошибке, как показано в следующем фрагменте: Private Sub Data1_Error(DataErr As Integer, Response As Integer) If
DataErr = 3022 Then ' Дублирование ключевого значения
- ошибка End Sub На главную страничку учебника Visual Basic |