Private Sub ВыборРейса_AfterUpdate()
' Проверка свободных мест при выборе рейса
If Me.ВыборРейса.Column(8) <= 0 Then
MsgBox "На этом рейсе нет свободных мест!", vbExclamation, "Бронирование невозможно"
Me.КнопкаЗабронировать.Enabled = False
Else
Me.КнопкаЗабронировать.Enabled = True
End If
End Sub
Private Sub КнопкаЗабронировать_Click()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim КодПассажира As Long
Dim Место As String
Dim НомерМеста As Integer
' Проверки
If IsNull(Me.ВыборРейса) Then
MsgBox "Выберите рейс!", vbExclamation
Exit Sub
End If
If IsNull(Me.ФИО) Or IsNull(Me.Паспорт) Then
MsgBox "Заполните ФИО и паспортные данные!", vbExclamation
Exit Sub
End If
If IsNull(Me.Цена) Or Me.Цена <= 0 Then
MsgBox "Укажите корректную цену билета!", vbExclamation
Exit Sub
End If
Set db = CurrentDb
' Добавление пассажира
Set rs = db.OpenRecordset("Пассажиры", dbOpenDynaset)
rs.AddNew
rs!ФИО = Me.ФИО
rs!Паспорт = Me.Паспорт
rs!Телефон = Nz(Me.Телефон, "")
rs.Update
КодПассажира = rs!КодПассажира
rs.Close
' Номер места = текущее количество билетов + 1
НомерМеста = DCount("*", "Билеты", "КодРейса = " & Me.ВыборРейса) + 1
Место = НомерМеста & Choose(НомерМеста Mod 3 + 1, "A", "B", "C")
' Добавление билета
Set rs = db.OpenRecordset("Билеты", dbOpenDynaset)
rs.AddNew
rs!КодРейса = Me.ВыборРейса
rs!КодПассажира = КодПассажира
rs!Место = Место
rs!Класс = Nz(Me.Класс, "Эконом")
rs!Цена = Me.Цена
rs.Update
Dim КодБилета As Long
КодБилета = rs!КодБилета
rs.Close
MsgBox "Билет успешно забронирован!" & vbCrLf & _
"Пассажир: " & Me.ФИО & vbCrLf & _
"Рейс: " & Me.ВыборРейса.Column(1) & vbCrLf & _
"Место: " & Место & vbCrLf & _
"Код билета: " & КодБилета, vbInformation, "Бронирование"
' Очистка полей
Me.ФИО = Null
Me.Паспорт = Null
Me.Телефон = Null
Me.Цена = Null
Me.Класс = "Эконом"
Me.ВыборРейса.Requery
Me.Refresh
Set db = Nothing
End Sub
Private Sub КнопкаЗакрыть_Click()
DoCmd.Close acForm, Me.Name
End Sub