Visual Basic 6. Руководство разработчика



         

Целостность ссылок - часть 3


Data1.Recordset.AddNew

End Sub

Подпрограмма HideButtons прячет кнопки Add Record и Delete Record и отобра­жает две другие. Кнопка Add Record добавляет новую пустую запись в конец набора записей RecordSet и устанавливает элемент управления Data на эту запись. Поль­зователь может ввести новые данные в элементы управления TextBox и, щелкнув на кнопке ОК, записать изменения в базу данных.

Программа 17.7. Событие Click кнопки ОК

Private Sub OKBttn_Click()

On Error GoTo CancelUpdate

Data1.Recordset.Update

ShowButtons

Exit Sub

Cancel-Update:

MsgBox Err.Description

Data1.Recordset.Cancel-Update

ShowButtons

End Sub

Метод Update помещает временную запись в базу данных. Затем подпрограмма ShowButtons скрывает кнопки ОК. и Cancel и отображает две другие.

Предупреждение

Если при изменении базы данных возникает ошибка (вызванная, скорее всего, механизмом JET), то операция должна быть отменена. Поскольку метод Update уже был вызван, то метод Refresh вызывать поздно. Вместо него вызывается метод CancelUpdate (Отменить запись).

Кнопка Cancel удаляет временную запись (отображенную), вызывая метод Refresh, а затем скрывает кнопки ОК и Cancel.

Программа 17.8. Событие Click кнопки Cancel

Private Sub CancelBttn_Click()

Data1.Refresh

Datal.Recordset.FindFirst "Isbn = ' " & prevISBN & " ' "

ShowButtons

End Sub

Если операция добавления отменяется, то происходит возвращение к первой записи таблицы (как при обновлении объекта RecordSet). Чтобы вернуться к по­следней отображенной записи, программа сохраняет значение поля ISBN записи в переменной prevISBN. Это происходит и при нажатии кнопки Add Record. Если пользователь отменяет операцию, то программа находит запись с тем же значением ISBN и снова отображает ее.

Программа 17.9. Событие Click кнопки Delete

Private Sub DelBttn Click()

On Error Resume Next

Datal.Recordset.Delete

If Not Data1.Recordset.EOF Then

Data1.Recordset.MoveNext

Elself Not Data1.Recordset.BOF Then




Содержание  Назад  Вперед