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
|