- •Министерство образования и науки Российской Федерации
- •2. Построение инфологической концептуальной модели (er-модели)
- •3. Построение реляционной схемы из er-модели данных
- •4. Описание приложения
- •5. Проектирование форм, запросов и отчетов
- •6. Код программы
- •7. Тестирование базы данных
- •Заключение
- •Список использованной литературы
6. Код программы
Подчиненная форма «Заказ» формы «Клиент»
Option Compare Database
Dim kolvo As Single
Private Sub Дата_выезда_AfterUpdate()
kolvo = [Дата_выезда] - [Дата_прибытия]
[Стоимость] = kolvo * [Стоимость_номера]
Refresh
End Sub
Private Sub Дата_прибытия_AfterUpdate()
kolvo = [Дата_выезда] - [Дата_прибытия]
[Стоимость] = kolvo * [Стоимость_номера]
Refresh
End Sub
Private Sub Номер_номера_AfterUpdate()
kolvo = [Дата_выезда] - [Дата_прибытия]
[Стоимость] = kolvo * [Стоимость_номера]
Refresh
End Sub
Private Sub Номер_номера_Click()
End Sub
Подчиненная форма «Заказ» формы «Заказ услуг»
Option Compare Database
Sub Form_Current()
Dim ParentDocName As String
On Error Resume Next
ParentDocName = Me.Parent.Name
If Err <> 0 Then
GoTo Form_Current_Exit
Else
On Error GoTo Form_Current_Err
Me.Parent![Используемые услуги подчиненная форма].Requery
End If
Form_Current_Exit:
Exit Sub
Form_Current_Err:
MsgBox Error$
Resume Form_Current_Exit
End Sub
Подчиненная форма «Используемые услуги» формы «Заказ услуг»
Option Compare Database
Private Sub Дата_Change()
Refresh
If [Дата] < Forms![Заказ услуг]![Заказ подчиненная форма].Form![Дата прибытия] Or [Дата] > Forms![Заказ услуг]![Заказ подчиненная форма].Form![Дата выезда] Then
MsgBox "Дата не соответствует времени вашего пребывания в гостинице.", vbExclamation
[Дата].Value = ""
End If
End Sub
Private Sub Количество_раз_AfterUpdate()
[Общая стоимость] = [Стоимость] * [Количество раз]
Refresh
End Sub
Private Sub Номер_услуги_AfterUpdate()
[Общая стоимость] = [Стоимость] * [Количество раз]
Refresh
End Sub
7. Тестирование базы данных
Запустим разработанное приложение.
Взаимодействие с пользователем осуществляется при помощи форм и запросов. Подробное их описание следует ниже.
Откроем форму «Клиент», которая предназначена для работы с информацией о клиентах и заказах (рис. 19).
Рис. 19. Форма «Книга»
Первоначально вводится информация о клиенте (ФИО, номер и серия паспорта, адрес, гражданство), а затем на подчиненной форме вводятся сведения о самом заказе. В поле со списком «Номер» пользователь может выбрать один из свободных на текущий момент номеров или же изменить свой выбор. В последнем случае информация об общей стоимости заказа обновиться.
Заполнив сведения о клиенте и заказе мы можем перейти к форме «Заказ услуг» (рис. 20), которая позволяет оформлять на клиента любые услуги, предоставляемые гостиницей.
Рис. 20. Форма «Заказ услуг»
Подчиненная форма «Заказ» содержит неизменную информацию, которая отображает некоторые сведения о заказе. В подчиненной форме «Используемые услуги» в поле со списком «Номер услуги» пользователь может выбрать любую доступную услугу. Некоторые сведения о ней автоматически появятся в соответствующих полях. В поле «Дата» ведется проверка на значение: дата должна соответствовать времени пребывания клиента в гостинице (в противном случае будет выдано сообщение об ошибке и просьба повторить ввод).
Помимо форм, важную роль играют запросы.
Так, нажав на запрос о свободных номерах, пользователь в любой момент может узнать список незанятых номеров на текущий момент (рис. 21).
Рис. 21 Список свободных номеров
Или наоборот, щелкнув по запросу «Заняты до даты», пользователь сможет узнать перечень номеров, занятых до определенной даты календаря (рис. 22).
Рис. 22. Постановка даты
Рис. 23 Выполнение запроса «Заняты до даты»
Следующим на очереди идет запрос «Номер за время». После нажатия на запрос пользователю будет предложено несколько окон ввода (Введите номер номера, Введите начальную дату, Введите конечную дату). После ввода появиться таблица, характеризующая занятость номера в течение определенного периода времени (рис. 24).
Рис. 24. Выполнение запроса «Номер за время»
Последним запросом является «Посещаемость». В результате выполнения этого запроса на экране отображаются сведения о регулярности посещения гостиницы теми или иными клиентами (рис. 25). На основании этой информации можно сделать вывод о наиболее часто посещающих гостиницу постояльцах.
Рис. 25. Выполнение запроса «Посещаемость»
Кроме всего вышеперечисленного, немалое значение имеет отчет «Номер/Клиент/Услуги». По заданному гостиничному номеру выдается список клиентов, проживавших в этом номере и их счета гостинице за использованные дополнительные услуги (рис. 26).
Рис. 26. Отчет «Номер/Клиент/Услуги»