Начальные условия:
Использование технологии доступа к данным DAO в Microsoft Access.
Язык Microsoft Visual Basic for Applications.
Пример реализации на основе формы ниже на картинке. Необходимо при нажатии кнопки бронировать, в таблице комнат, у выбранного номера комнаты поставить статус бронирован.
Для добавления кода необходимо перейти в окно свойств кнопки (Правой кнопкой мыши по необходимой кнопке в режиме конструктора —> Свойства). Вкладка События. Нажать кнопку с многоточием напротив текста Нажатие кнопки. Затем выбрать из списка пункт «Программы» и нажать ОК.
Попадаем в программную среду Microsoft Visual Basic for Applications, как на рисунке ниже
Вставляем следующий код:
rem Если Ошибка выходим
On Error GoTo Err_Кнопка15_Click
Dim er
er = False
Dim rs As DAO.Recordset
Dim strSql As String
rem Создаем текст запроса
strSql = "SELECT [Состояние], [Number Ap] FROM House;"
rem Подключаем БД и выполняем запрос с помощью DAO
Set rs = DBEngine(0)(0).OpenRecordset(strSql)
rem Проверка на пустые поля в Форме
If (IsNull([Фамилия])) Then
er = True
MsgBox "Необходимо Заполнить поле Фамилия ", vbCritical
GoTo Exit_Кнопка15_Click:
End If
If (([Срок] [Дата прибытия])) Then
er = True
MsgBox "Некорректные даты ", vbCritical
GoTo Exit_Кнопка15_Click:
End If
If ((IsNull(Срок)) Or (IsNull([Дата прибытия]))) Then
er = True
MsgBox "Даты необходимо заполнить ", vbCritical
GoTo Exit_Кнопка15_Click:
End If
rem работаем с БД, проходим по всем записям таблицы
If (Not (er)) Then
Do While Not rs.EOF
rem ищем нашу комнату
If rs![Number Ap] = [ID Номер Апарт] And (Not (IsNull([Фамилия]))) Then
rem редактируем запись в таблице
rs.Edit
rs![Состояние] = "бронирован"
rs.Update
Else
End If
rs.MoveNext
Loop
rs.Close
End If
rem здесь точки выхода из программы
Set rs = Nothing
Me.Dirty = False
DoCmd.Close acForm, Me.Name
Exit_Кнопка15_Click:
Exit Sub
Err_Кнопка15_Click:
MsgBox Err.Description, vbCritical
Resume Exit_Кнопка15_Click