Действие метода UpdateControls полностью аналогично переустановке указателя текущей записи на себя. При этом, связанные элементы управления очищаются и, затем, их содержимое восстанавливается согласно текущей записи. То есть, никаких изменений полей базы данных не происходит, даже если содержимое связанных элементов управления было отредактировано.
Хорошей иллюстрацией использования метода UpdateControls является предоставление пользователю возможности подтвердить сделанные изменения содержимого текущей записи. Для этого необходимо вмешаться в процедуру обработки события Validate объекта Data.
1. Откройте проект, который использовался для демонстрации удаления записи и добавьте следующий фрагмент кода в процедуру обработки события Validate:
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
Data1.UpdateControls
Exit Sub
End If
End Sub
2. Запустите приложение.
3. Измените содержимое какого-нибудь связанного текстового окна, например, года издания, и, используя кнопки перемещения по набору записей, измените положение текущей записи. В результате, на экран будет выдано диалоговое окно, в котором можно подтвердить или отменить сделанные изменения.
4. Закройте приложение.
• UpdateRecord
Метод UpdateRecord сохраняет в базе данных содержимое текущей записи, отображаемое в связанных элементах управления.
Использование этого метода позволяет сохранить содержимое связанных элементов управления в базе данных без перемещения указателя текущей записи. При этом не генерируется событие Validate. Следует отметить, что перед использованием этого метода необходимо убедиться, что соблюдены правила целостности базы данных.
Следующий пример показывает, как использовать в приложениях метод UpdateRecord:
1. Откройте проект, использованный для демонстрации метода UpdateControls.
2. Разместите на форме командную кнопку, измените ее свойство Caption на “Обновить данные” и добавьте следующий код в процедуру обработки события Click:
Private Sub Command2_Click()
Data1.UpdateRecord End Sub
3. Запустите проект. Отредактируйте содержимое связанных элементов управления и нажмите кнопку “Обновить данные”. Теперь, сделанные вами изменения сохранены в базе данных.
• Error
Событие Error происходит, когда при использовании объекта Data возникает какая-либо ошибка доступа к данным, причем в это время программный код, написанный программистом не выполняется. Примером такой ситуации может быть случай, когда база данных, определенная свойством DatabaseName объекта Data, не найдена. Здесь не выполняется написанного программистом кода и, поэтому, обработка такого рода ошибки невозможна с использованием стандартных средств Visual Basic. К счастью, в этом случае происходит событие Error, в процедуру обработки которого программист имеет полное право вмешаться.
Параметр DataErr содержит код ошибки. Различные варианты действия после возникновения ошибки определяются параметром Response, и приведены в следующей таблице:
Постоянная ∙ Значение ∙ Действие
1. Откройте любой проект и измените свойство DatabaseName объекта управления данными Data1 на С: \BIBLIO.MDB.
2. Запустите проект и убедитесь, что на экране появляется сообщение об ошибке.
3. Добавьте в процедуру обработки события Error следующий фрагмент:
Private Sub Data1_Error(DataErr As Integer, Response As Integer)
Response = vbDataErrContinue
End Sub
4. Запустите приложение. В этом случае сообщения об ошибке не возникает.
• Reposition
Событие Reposition происходит, когда запись в наборе записей становится текущей.