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



         

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


Data1.Recordset.MovePrevious

Else

MsgBox "This was the last record in the table"

' (Эта запись в таблице была последней)

End If

End Sub

Метод Delete удаляет текущую запись. После операции удаления объект RecordSet не перемещается на другую запись автоматически. Вместо этого он остается на удаленной записи, пока не будет нажата одна из кнопок перемещения. Программа перемещается на следующую запись, если удаленная запись не была последней. В противном случае - перемещается на предыдущую запись. Если уда­ленная запись была единственной в таблице, то программа отобразит сообщение и останется на текущей записи.

Подпрограммы ShowButtons (Показать кнопки) и HideButtons (Спрятать кнопки) манипулируют свойством Visible кнопок. Кроме этого, они отображают и прячут, соответственно, элемент Data, чтобы пользователь мог завершить операцию ввода данных, пользуясь только кнопками ОК или Cancel.

Программа 17.10. Подпрограмма ShowButtons

Sub ShowButtons()

AddBttn Visible = True

DelBttn.Visible =  True

OKBttn.Visible = False

CancelBttn.Visible = False

Data1.Visible = True

End Sub

Если открыть приложение Data Entry, то найдется несколько более интересных подпрограмм. Например, при возникновении события Error элемента управления Data программа отменяет операцию модификации и отображает сообщение об ошибке. Это происходит в том случае, если пользователь, редактируя текущую запись, вводит недопустимую информацию в одно из ее полей.

Программа 17.11. Событие Error элемента Data

Private Sub Datal_Error(DataErr As Integer, Response As Integer)

MsgBox Err Description

Response =  0

Data1.Recordset CancelUpdate

End Sub

При обработке события Validate элемента Data программа выясняет, был ли изменен какой-либо из связанных с данными элементов управления. Если это так, то она запрашивает пользователя, нужно ли сохранить изменения в таблице.

Программа 17.12. Событие Validate

Private Sub Datal_Validate(Action As Integer, Save As Integer)

Dim reply

If txtTitle.DataChanged Or txtISBN.DataChanged Or _

txtDescription.DataChanged Or txtSubject DataChanged _

Or txtComments.DataChanged Then

   reply = MsgBox ("Record has been changed Save?", vbYesNo )

' (Запись была изменена Сохранить? ...)

   If reply = vbNo Then

  Save = False

   End If

End If

End Sub

При обработке события Validate программа, обычно, учитывает значение параметра Action и реагирует согласно действию, вызвавшему ошибку.




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