Загрузка данных


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