-Поиск по дневнику

Поиск сообщений в rss_sql_ru_access_programming

 -Подписка по e-mail

 

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 16.03.2006
Записей:
Комментариев:
Написано: 4


Обработка ошибок

Среда, 07 Ноября 2018 г. 21:06 + в цитатник
Уважаемые знатоки! ))) Посмотрите, пожалуйста код, на предмет необходимости обработки ошибок, поскольку я с данным вопросом что-то пока не разобрался. Не пойму, где нужна, а где можно без этого обойтись. Не буду против конструктивной критики самого кода))))

+
Option Compare Database

Option Explicit

Private Sub BirthDate_GotFocus()
Me.BirthDate.SelStart = 0
End Sub

Private Sub CancCmd_Click()
    Me.Undo
    Me.Position.Value = Null
    Me.Rank.Value = Null
End Sub

Private Sub CloCmd_Click()
    Me.Undo
    Me.Position.Value = Null
    Me.Rank.Value = Null
    DoCmd.Close acForm, "FnewPeopleRst"
End Sub

Private Sub Form_BeforeUpdate(Cancel As Integer)
  Dim rstPR As ADODB.Recordset
 On Error GoTo ExitHere
    If IsNull(Me.FName) Or IsNull(Me.LName) Or IsNull(Me.PName) Then
        MsgBox "Не заполнены обязательные сведения (Фамилия/Имя/Отчество)", vbOKOnly + vbCritical, "НЕДОСТАТОЧНО ДАННЫХ"
        Cancel = True
    ElseIf DCount("*", "People", "(People.FName & People.LName & People.PName)='" & (Me.FName & Me.LName & Me.PName) & "'") > 0 Then
        MsgBox "Данный человек имеется в базе", vbOKOnly + vbCritical, "ДУБЛИКАТ ДАННЫХ"
        Me.Undo
    ElseIf PeopleSt.Value = 0 And (IsNull(Me.Position) Or IsNull(Me.Rank)) Then
        MsgBox "Не заполнены сведения о сотруднике (Должность/Звание)", vbOKOnly + vbCritical, "НЕДОСТАТОЧНО ДАННЫХ"
        Cancel = True
    ElseIf vbNo = MsgBox("Вы хотите сохранить новые данные?", vbYesNo + vbQuestion, "ОБНАРУЖЕН НОВЫЙ НАРУШИТЕЛЬ/СОТРУДНИК") Then
            Me.Undo
            Me.Position.Value = Null
            Me.Rank.Value = Null
    Else
      If PeopleSt.Value = 0 Then
        Set rstPR = New ADODB.Recordset
         With rstPR
            .Open "Officers", CurrentProject.Connection, adOpenDynamic, adLockPessimistic
            .AddNew
            .Fields("PeID") = Me.PeopleID
            .Fields("Position") = Me.Position
            .Fields("Rank") = Me.Rank
            .Update
         End With
        rstPR.Close
        Set rstPR = Nothing
        Me.Position.Value = Null
        Me.Rank.Value = Null
       Else: DoCmd.GoToRecord , , acNewRec
       End If
    End If
ExitHere:
    Exit Sub
End Sub

Private Sub Form_Load()
    PeopleSt.Value = -1
    DoCmd.MoveSize Height:=2500
    DoCmd.GoToRecord , , acNewRec
    Me.Position.ColumnCount = 2
    Me.Position.ColumnWidths = "0;50"
    Me.Position.RowSource = "SELECT * FROM Positions ORDER BY PositID"
    Me.Rank.ColumnCount = 2
    Me.Rank.ColumnWidths = "0;50"
    Me.Rank.RowSource = "SELECT * FROM Ranks ORDER BY RankID"
End Sub

Private Sub PeopleSt_Click()
    If PeopleSt.Value = 0 Then
            DoCmd.MoveSize Height:=5800
            Me.BirthDate.Visible = False
        Else
            DoCmd.MoveSize Height:=2500
            Me.BirthDate.Visible = True
        End If
End Sub

Private Sub SaveCmd_Click()
    On Error GoTo ExitHere
     DoCmd.GoToRecord , , acNewRec
ExitHere:
    Exit Sub
End Sub

http://www.sql.ru/forum/1305025/obrabotka-oshibok


 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку