2. Хід роботи:
-
Запустіть програму MS Access 2003. Відкрийте базу даних Sanatoriy.mdb, створену за результатами попередньої практичної роботи.
-
Створіть запит у базі даних, завдяки якому, користувач буде мати змогу відобразити інформацію про конкретного працівника санаторію, за який номер відпочинку відповідає (якщо це робочий) і коли обслуговував даний номер. Назвіть даний запит ОБСЛУГОВУВАННЯ.
Для цього перейдіть на вкладку Запросы. Натисніть кнопку Создать. Оберіть з меню Конструктор.
-
У вікні діалогу Добавление таблицы на вкладці Таблицы оберіть дві таблиці ПРАЦІВНИКИ та ВикоритНомер, з яких необхідно відібрати дані. Натисніть кнопку Добавить. Закрийте вікно Добавление таблицы.
-
Оберіть ті поля, які необхідно включити до запиту. Для того, щоб помістити необхідні поля до бланку запиту, двічі натисніть кнопкою миші на імені поля у таблиці (інший спосіб – перетягнути назву поля з таблиці до бланку запиту або обрати необхідні поля у списку при назві поля у бланку запиту). Оберіть такі поля: Прізвище із таблиці ПРАЦІВНИКИ, №кімнати, Дата повернення із таблиці ВикористНомер.
-
Як Условие отбора працівників вводимо:
[введіть прізвище працівника].
-
У рядку Вывод на экран забираємо галочку. Діалогове вікно конструктора при створенні запиту ОБСЛУГОВУВАННЯ зображено на рис.8.1.
Рис. 8.1. Діалогове вікно конструктора при створенні запиту ОБСЛУГОВУВАННЯ.
-
Закрийте діалогове вікно конструктора та задайте назву для запиту ОБСЛУГОВУВАННЯ. Перевірте даний запит, запустивши його на виконання (команда Открыть або подвійне клацання мишки) і введіть прізвище існуючого у базі даних працівника обслуги.
-
Створіть новий запит, який матиме назву Історія НОМЕРА і буде відображати інформацію про номер який використовувався, ким, коли та термін перебування. Для цього, оберіть з меню Конструктор для побудови даного запиту.
-
У вікні діалогу Добавление таблицы на вкладці Таблицы оберіть три таблиці НОМЕРА, КЛІЄНТИ, ВикористНомер, з яких необхідно відібрати такі поля: №кімнати (з таблиці НОМЕРА), Прізвище, Ім’я, Місто/село (за таблиці КЛІЄНТИ), Дата видачі, Дата повернення (з таблиці ВикористНомер), Ціна (з таблиці НОМЕРА).
-
Для створення стовпця Термін перебування в номері санаторію поставте в наступному чистому полі курсор, оберіть на панелі інструментів інструмент Построить (або через контекстне меню) і введіть:
Термін перебування: [Дата повернення]-[Дата видачі]
-
Як Условие отбора поля №кімнати введіть:
[введіть номер кімнати].
Діалогове вікно конструктора при створенні запиту ІсторіяНОМЕРА зображено на рис.8.2.
Рис. 8.2. Діалогове вікно конструктора при створенні запиту ІсторіяНОМЕРА.
-
Закрийте конструктор запиту та задайте назву запиту ІсторіяНОМЕРА.
-
Перевірте даний запит, запустіть його на виконання і відобразіть інформацію про існуючі номера у санаторію.
-
Створіть новий запит ІсторіяКЛІЄНТА, який буде відображати інформацію про клієнта, які номера використовував, коли, термін перебування, оплачена сума.
Для цього створіть новий запит в режимі конструктора та оберіть такі дані:
- з таблиці КЛІЄНТИ: Прізвище, Ім’я, По батькові, Серія паспорта, Номер паспорта, Ідентифікаційний код, Місто/село, Телефон;
- з таблиці ВикористНомер: №кімнати, Дата видачі.
- з таблиці НОМЕРА: Ціна.
-
У наступному чистому полі конструктора побудуйте вираз, що дозволяє обчислити термін перебування клієнта. Використайте інструмент Построить та введіть вираз:
Термін перебування: [ВикористНомер]![Дата повернення]-[ВикористНомер]![Дата видачі]
-
У новому чистому полі конструктора побудуйте вираз, що дозволяє обчислити суму, оплачену клієнтом за час користування номером. Знову використайте інструмент Построить та введіть вираз:
Оплачена сума: ([ВикористНомер]![Дата повернення]-[ВикористНомер]![Дата видачі])*[НОМЕРА]![Ціна]
-
Як Условие отбора по полю Прізвище введіть:
[введіть прізвище клієнта].
-
Задайте умову Сортировка по возрастанию у полі Дата видачі.
-
Перевірте запит, запустіть його на виконання. Якщо обчислення, які повинні бути в запиті, не виконуються, то поверніться в режим конструктора та перевірте правильність введення необхідних умов. Якщо ж всі поля обчислюються, то збережіть даний запит та задайте йому назву ІсторіяКЛІЄНТА.
-
Змініть запит ІсторіяКЛІЄНТА забравши умову відбору по полю Прізвище.
-
Створіть новий запит, запустивши який можна створити нову таблицю у базі даних за назвою ПЕРЕБУВАННЯ. Дана таблиця має відібрати дані про тих клієнтів, які на даний час перебувають в санаторії. (Перевірте чи існують у ваших таблицях клієнти дата вибуття котрих є за межами поточної дати). Створіть новий запит в режимі конструктора.
-
Задайте тип запиту Создание таблицы через команду Запрос → Создание таблицы. У діалоговому вікні введіть назву таблиці ПЕРЕБУВАННЯ, яку має створювати запит.
-
Відберіть такі дані для запиту:
- з таблиці ВикористНомер: №кімнати, Дата видачі, Дата повернення.
- з таблиці КЛІЄНТИ: Прізвище, Ім’я.
-
Як Условие отбора по полю Дата повернення побудуйте вираз:
[ВикористНомер]![Дата повернення]>Date()
У даному виразі функція Date() визначає поточну дату (за налаштуваннями комп’ютера)
-
У новому чистому полі конструктора побудуйте вираз, що дозволить обчислити кількість днів до вибуття клієнта із санаторію:
Залишилося до вибуття (днів): ВикористНомер![Дата повернення]-Date()
-
Використайте команду Вид та перегляньте результат.
-
Якщо всі поля обчислюються, закрийте конструктор запитів та задайте ім’я запиту ПЕРЕБУВАННЯ_Запит.
-
Запустіть створений запит на виконання. Перейдіть на вкладку Таблицы та переконайтеся що створена таблиця ПЕРЕБУВАННЯ та перевірте її дані.
-
Поверніться на вкладку Запросы та створіть новий запит, який обновлятиме дані у таблиці НОМЕРА, а саме змінюватиме ціну за перебування у номерах, збільшуючи її на певний відсоток, значення якого користувач вводитиме з клавіатури. Для цього, створіть новий запит в режимі конструктора.
-
Задайте тип запиту Обновление та відберіть в якості даних до запиту поле Ціна.
-
У рядку Обновление за полем Ціна побудуйте вираз:
[НОМЕРА]![Ціна]+([НОМЕРА]![Ціна]*[задайте % зміни ціни]/100)
-
Закрийте конструктор запитів та задайте ім’я запиту Оновлення_ціни.
-
Запустіть створений запит на виконання. Перейдіть на вкладку Таблицы та переконайтеся що у таблиці НОМЕРА змінюються дані за полем Ціна.
-
Закрийте базу даних та підготуйте практичну роботу до захисту.