
- •Бази даних і системи управління ними
- •Використання даних типу Поле об'єкта ole(ole Object)
- •Розміщення об'єкта ole
- •Введення логічно зв'язаних записів
- •Логічна структура бази даних
- •Включення таблиць у схему даних
- •Визначення зв'язків між таблицями схеми даних
- •Послідовність завантаження таблиць
- •Створення однотабличної форми за допомогою інструмента «Форма»
- •Зауваження
- •Робота з даними таблиці в режимі форми
- •Форми для завантаження двох таблиць
- •Розміщення реквізитів основної і підлеглої форми
- •Створення форми для двох таблиць за допомогою майстра
- •Вибір типу форми
- •Присвоєння імені формі і її відкриття
- •Створення кнопок для переходу до іншого запису
- •Редагування підлеглої форми
- •Перехід у режим форми і завантаження таблиць
- •Багатотабличні форми
- •Проектування форми
- •Визначення підсхеми даних
- •Визначення загальної структури форми
- •Розміщення реквізитів форми
- •Створення багатотабличної форми з підлеглою формою засобами майстра
- •Редагування основної частини форми.
- •Створення поля зі списком за допомогою майстра
- •Створення поля зі списком без використання майстра
- •Використання імен полів різних таблиць в умові відбору
- •Створення полів, що обчислюються, у запитах
- •Створення обчисленого поля
- •Використання Построитель выражений
- •Порядок створення запиту з використанням групових операцій
- •Запит з функцією Count
- •Конструювання запиту на створення таблиці
- •Використання виразів у запиті на відновлення
- •Конструювання перехресного запиту
- •Рішення завдань на основі декількох запитів
- •Побудова запиту на основі іншого запиту
- •Рішення завдання, що вимагає виконання декількох запитів із зберенням проміжних результатів
- •Звіт по одній таблиці
- •Включення обчисленого поля у звіт
- •Додавання поточної дати до сторінки
- •Створення основної частини звіту
- •Включення підлеглого звіту
- •Багатотабличні звіти
- •Вибір таблиць для звіту і варіанта його створення.
- •Конструювання запиту для підготовки макета звіту.
- •Формування записів результатів у запиті.
- •Створення текстових елементів звіту.
- •Оформлення табличної частини звіту.
- •Попередній перегляд звіту.
- •Керування додатком користувача
- •Створення кнопкової форми за допомогою диспетчера
- •Створення підлеглих кнопкових форм додатка
- •Редагування імені і формування елементів кнопкової форми
- •Формування елементів для відкриття об'єктів додатка.
- •Зауваження.
- •Додавання рисунка у кнопкову форму
- •Конструювання кнопкової форми
- •Запуск Access з відкриттям додатка користувача
Побудова запиту на основі іншого запиту
Виконаємо аналіз оцінок, отриманих студентами по різних предметах. Наприклад, підрахуємо число оцінок (2,3,4,5) по кожному із предметів.
Створимо спочатку багатотабличний запит на вибірку на основі таблиць СТУДЕНТ, УСПІШНІСТЬ, ПРЕДМЕТ, ВИКЛАДАЧІ, що формує відомості про оцінки, отриманих студентами з різних предметах. Для цього в режимі конструктора створимо схему даних запиту і бланк, як показано на рис.7.24. Збережемо цей запит з ім'ям "Оцінки".
У результаті виконання цього запиту буде отримана таблиця, джерелом записів якої є таблиця УСПІШНІСТЬ, а дані вибираються з таблиць: ПРЕДМЕТ, СТУДЕНТ, ВИКЛАДАЧІ. Таким чином, кожен рядок результату буде містити інформацію про одну оцінку, отриманої студентом по вказаному в рядку предмету. Число рядків у таблиці запиту буде дорівнює числу рядків у таблиці УСПІШНІСТЬ.
Рис.7.24. Багатотабличний запит про оцінки студентів
Для підрахунку числа різних оцінок (2,3,4,5) по кожному з предметів на основі цього запиту створимо новий запит - Кількість оцінок. При створенні нового запиту у вікні Отобразить таблицу/Добавление таблицы на вкладці Запросы виберемо з списку запит Оцінки. Заповнимо бланк запиту, як показано на рис.7.25.
Результат виконання запиту Кількість оцінок наведене на рис. 7.26, де в стовпці Выражение 1 відображена кількість оцінок, отриманих по кожному предмету.
Рис.7.25. Побудова запиту на основі запиту Оцінки
Рис. 7.26. Результати запиту, побудованого на іншому запиті
Рішення завдання, що вимагає виконання декількох запитів із зберенням проміжних результатів
Нехай необхідно визначити середнє навантаження викладача кафедри у поточному семестрі. Для цього необхідно підрахувати число викладачів кафедри, потім загальна кількість годин занять, проведених кафедрою, і завершити рішення завдання розрахунком середнього навантаження викладача.
Перший запит. Створимо перший запит на вибірку, у якому по таблиці ВИКЛАДАЧІ за допомогою функції Count підрахуємо число викладачів по кафедрах. Збережемо запит під ім'ям "Число викладачів кафедри".
Другий запит. Підготуємо другий запит на вибірку для підрахунку загального числа годин занять, проведених кожною кафедрою.
Цей запит побудуємо на базі таблиць ВИКЛАДАЧІ, НАВЧАННЯ, КАФЕДРА і запиту Число викладачів кафедри (рис. 7.25). Таблиці ВИКЛАДАЧІ і НАВЧАННЯ потрібні для підсумовування числа годин занять, проведених викладачами кожної кафедри. Таблиця КАФЕДРА необхідна для включення у результат найменування кафедри, а запит Число викладачів кафедри - для включення у результат числа викладачів на кафедрі.
Записи цього запиту формуються на основі записів таблиці НАВЧАННЯ, причому число записів до проведення угруповування дорівнює числу записів у цій таблиці. У результаті запиту до кожного запису додається найменування кафедри НКАФ, по якому і відбувається угруповування. Число викладачів кафедри Count_TAБ ніяк не порушує необхідного об'єднання записів у групі, оскільки для кожної кафедри є єдиним. Число записів у таблиці результату запиту дорівнює числу кафедр.
Рис. 7.27. Запит для підрахунку загального числа годин занять, проведених кожною кафедрою
У рамках даного запиту не можна відразу обчислити середнє навантаження викладача тому, що число викладачів кафедри є результатом виконання групової операції. Використання результатів виконання запиту із груповою операцією не допускається в полях, що обраховуються. Тому необхідно зберегти результати виконання другого запиту у новій таблиці і на її основі побудувати наступний запит, у якому буде зроблений розрахунок середнього навантаження викладача.
Щоб зберегти отримані результати, перетворимо другий запит на вибірку в запит на створення таблиці. Таблиця, що буде створена запитом, дамо ім'я "Навантаження". Запит збережемо під ім'ям " Навантаження на кафедрі" (див. рис.7.27).
Другий запит у режимі таблиці наведений на рис. 7.28. Таблицю НАВАНТАЖЕННЯ, збережемо в базі даних, що містить результат рішення цього запиту (рис. 7.29).
Рис. 7.28. Запит Навантаження на кафедрі в режимі таблиці
Рис. 7.29. Збережена таблиця НАВАНТАЖЕННЯ з результатами другого запиту
Третій запит. Для остаточного рішення завдання розрахунку середнього навантаження викладача кафедри створимо на базі таблиці НАВАНТАЖЕННЯ. Третій запит на вибірку з обрахуванням поля. Для створення обрахованого поля, середнє навантаження викладача поставити у рядок Поле порожнього стовпця і введемо вираз [Sum_ГОДИНИ]/[Count_ТАБН]. Третій запит на вибірку на рис. 7.30.
У таблиці результату варто змінити заголовок стовпця Выражение1, формований за замовчуванням при обчисленні поля, а формат задати округленим до цілого. Для цього викличемо властивості поля за допомогою контекстного меню. Задамо підпис поля "Середнє навантаження викладача", формат поля визначимо як фіксований, а параметру Число десятичных знаков привласнимо значення "0"
Рис. 7.30. Запит, що завершує завдання розрахунку середнього навантаження
Результати виконання запиту після зміни підписів полів у властивостях наведені на рис. 7.31.
Рис. 7.31. Результати розрахунку середнього навантаження викладачів по кафедрах
Процес рішення завдання. Для рішення поставленого завдання необхідно послідовно виконати другий запит - Навантаження на кафедрі (див. рис. 7.25), а потім третій запит - (див. рис. 7.30). Перший запит Число викладачів кафедри виконається автоматично при виконанні запиту Навантаження на кафедрі. Для того щоб автоматизувати рішення завдання, що вимагає виконання декількох запитів, потрібно використати засоби розробки додатка користувача, наприклад, написати макрос. Технологія підготовки макросу, що дозволяє виконати послідовність запитів, розглядається нижче.