Читаем Интернет-журнал "Домашняя лаборатория", 2007 №4 полностью

После загрузки объекта Data и открытия соответствующего набора записей, первая запись в наборе становится текущей и происходит событие Reposition. Это событие также происходит, когда пользователь нажимает кнопки на объекте Data для перемещения по набору записей, а также при использовании методов Move или Find. Вообще говоря, применение любых методов, при которых происходит изменение положения текущей записи, вызывает событие Reposition.

В отличие от события Validate, которое происходит перед изменением текущей записи, событие Reposition всегда происходит после того, как следующая запись стала текущей.


• Validate

Событие Validate происходит перед изменением положения текущей записи, а так же перед выполнением методов Update (за исключением случая, когда данные сохраняются с помощью метода UpdateRecord), Delete, Unload, или Close.

Синтаксис:Private Sub Data1 Validate (Action As Integer, Save As Integer)

Аргумент Save определяет состояние связанных элементов управления. Если аргумент Save установлен в True, то содержимое связанных элементов управления было изменено. Если же аргумент Save установлен в False, то никаких изменений в связанных элементах управления не произошло.

Аргумент Action определяет действие, которое вызвало событие Validate. Возможные значения этого параметра и их краткие описания приведены в следующей таблице.

Постоянная ∙ Значение ∙ Описание

vbDataActionCancel ∙ 0 ∙ Отменяет операцию при выходе из процедуры обработки события.

vbDataActionMoveFirst ∙ 1 ∙ Нажата кнопка перехода к первой записи на объекте Data или применен метод MoveFirst объекта Recordset.

vbDataActionMovePrevious ∙ 2 ∙ Нажата кнопка перехода к предыдущей записи на объекте Data или применен метод MovePrevious объекта Recordset.

vbDataActionMoveNext ∙ 3 ∙ Нажата кнопка перехода к следующей записи на объекте Data или применен метод MoveNext объекта Recordset.

vbDataActionMoveLast ∙ 4 ∙ Нажата кнопка перехода к последней записи на объекте Data или применен метод MoveLast объекта Recordset.

vbDataActionAddNew ∙ 5 ∙ Применен метод AddNew объекта Recordset или указатель текущей записи перемещен за конец файла при установленном свойстве EOFAction объекта Data в AddNew.

vbDataActionUpdate ∙ 6 ∙ Применен метод Update объекта Recordset (но не UpdateRecord объекта Data).

vbDataActionDelete ∙ 7 ∙ Применен метод Delete объекта Recordset.

vbDataAction ∙ 8 ∙ Применен один из методов Find объекта Recordset.

vbDataActionBookmark ∙ 9 ∙ Изменено свойство Bookmark объекта Recordset.

vbDataActionClose ∙ 10 ∙ Применен метод Close объекта Recordset.

vbDataActionUnload ∙ 11 ∙ Выгружена экранная форма, содержащая объект управления данными.


В процедуре обработки события Validate можно заменить действие, вызвавшее это событие, на другое действие при помощи установки свойства Action соответствующим образом. При этом совершенно свободно можно менять любой из методов Move на метод AddNew и обратно. Отмена любого действия производится установкой аргумента Action в 0 (Action = vbDataActionCancel).

Примером обработки события Validate можно найти в уже рассмотренном ранее проекте, посвященном применению метода UpdateControls. Только теперь, вместо метода UpdateControls для отмены результатов редактирования, вы можете использовать установку аргумента Action в vbDataActionC ancel:

Private Sub Data1_Validate(Action As Integer, Save As Integer) If Save=False Then Exit Sub End If

If MsgBox("Coxpaнить сделанные изменения",vbYesNo,"","",0)=vbNo Then

Action=vbDataActionCancel

Exit Sub

End If

End Sub

Перейти на страницу:

Похожие книги