- •Бази даних і системи управління ними
- •Використання даних типу Поле об'єкта ole(ole Object)
- •Розміщення об'єкта ole
- •Введення логічно зв'язаних записів
- •Логічна структура бази даних
- •Включення таблиць у схему даних
- •Визначення зв'язків між таблицями схеми даних
- •Послідовність завантаження таблиць
- •Створення однотабличної форми за допомогою інструмента «Форма»
- •Зауваження
- •Робота з даними таблиці в режимі форми
- •Форми для завантаження двох таблиць
- •Розміщення реквізитів основної і підлеглої форми
- •Створення форми для двох таблиць за допомогою майстра
- •Вибір типу форми
- •Присвоєння імені формі і її відкриття
- •Створення кнопок для переходу до іншого запису
- •Редагування підлеглої форми
- •Перехід у режим форми і завантаження таблиць
- •Багатотабличні форми
- •Проектування форми
- •Визначення підсхеми даних
- •Визначення загальної структури форми
- •Розміщення реквізитів форми
- •Створення багатотабличної форми з підлеглою формою засобами майстра
- •Редагування основної частини форми.
- •Створення поля зі списком за допомогою майстра
- •Створення поля зі списком без використання майстра
- •Використання імен полів різних таблиць в умові відбору
- •Створення полів, що обчислюються, у запитах
- •Створення обчисленого поля
- •Використання Построитель выражений
- •Порядок створення запиту з використанням групових операцій
- •Запит з функцією Count
- •Конструювання запиту на створення таблиці
- •Використання виразів у запиті на відновлення
- •Конструювання перехресного запиту
- •Рішення завдань на основі декількох запитів
- •Побудова запиту на основі іншого запиту
- •Рішення завдання, що вимагає виконання декількох запитів із зберенням проміжних результатів
- •Звіт по одній таблиці
- •Включення обчисленого поля у звіт
- •Додавання поточної дати до сторінки
- •Створення основної частини звіту
- •Включення підлеглого звіту
- •Багатотабличні звіти
- •Вибір таблиць для звіту і варіанта його створення.
- •Конструювання запиту для підготовки макета звіту.
- •Формування записів результатів у запиті.
- •Створення текстових елементів звіту.
- •Оформлення табличної частини звіту.
- •Попередній перегляд звіту.
- •Керування додатком користувача
- •Створення кнопкової форми за допомогою диспетчера
- •Створення підлеглих кнопкових форм додатка
- •Редагування імені і формування елементів кнопкової форми
- •Формування елементів для відкриття об'єктів додатка.
- •Зауваження.
- •Додавання рисунка у кнопкову форму
- •Конструювання кнопкової форми
- •Запуск Access з відкриттям додатка користувача
Багатотабличні звіти
Розглянемо технологію розробки звіту, основним джерелом якого є підлегла таблиця, коли дані головних таблиць щодо цього джерела теж включаються у відповідь. Майстер звітів дозволяє побудувати багатотабличний звіт для взаємозалежних таблиць, вибрати з них потрібні поля в заданій послідовності і указати, яка таблиця у звіті, буде основним джерелом даних. Крім того, майстер надає можливість визначити групування і сортування записів звіту різних полів, підрахувати підсумкові значення.
Нехай необхідно одержати звіт, у якому виводяться у вигляді списку дані про заняття, проведених у кожній групі. Рядки звіту повинні бути впорядковані по коду предмета. При виводі даних у звіті повинні також формуватися розрахункові сумарні ГОДИНИ по заняттях для кожної групи.
Проект макета звіту наведений на рис. 10.1.
Рис. 10.1. Проект макета звіту про заняття, проведених у групах
Вибір таблиць для звіту і варіанта його створення.
Основні відомості про заняття, проведених у групах, містить підлегла таблиця НАВЧАННЯ. З таблиці НАВЧАННЯ можна одержати перелік ідентифікаторів занять, проведених у кожній групі, з вказівкою годин по заняттю. Ця таблиця є основним джерелом записів для створення звіту. Найменування предметів містить таблиця ПРЕДМЕТ, а прізвища викладачів - таблиця ВИКЛАДАЧІ. Обидві ці таблиці є головними стосовно таблиці НАВЧАННЯ.
Починаючи створення звіту у вкладці Создать, виберемо Мастер отчетов.
У вікні Создание отчетов (див. рис. 10.2.) виберемо з таблиці НАВЧАННЯ поля: НГ, ВИДЗ, ГОДИНИ.
Рис. 10.2. Вікно для формування користувачем списку полів, що включають у звіт
З таблиці ПРЕДМЕТ виберемо поле з найменуванням предмета НП, а з таблиці ВИКЛАДАЧІ поле ПІБ.
На рис. 10.2. представлене вікно Створення звіту після вибору всіх полів, які використовуються у звіті.
У наступному сеансі вікна майстра в рядку Выберите тип представления данных. Далі задаються рівні угруповання, які дозволяють вивести записи, об'єднані по різним полям. Задамо один рівень угруповання по полю НГ. При цьому у вікні відображається загальна структура формованого макета звіту.
У наступному сеансі діалогового вікна майстра Создание отчета задається порядок сортування записів (рис. 10.3).
Рис. 10.3. Вікно майстра звітів при виборі порядку сортування рядків
Майстер дозволяє провадити сортування по чотирьох полях у порядку зростання або спаданню значень поля. Виберемо поле НП (Назва предмета), по якому потрібно зробити сортування по зростанню. Щоб зробити підрахунок підсумкових значень, натиснемо кнопку Итоги. Для числових полів у вікні, що відкрилося, можна вибрати статистичну функцію (Sum, Avg, Min, Max) для підрахунку значень у підсумковому рядку групи. Відповідно до проекту макета звіту (див. рис. 10.1) повинно бути виведене сумарне число годин у поле звіту Разом по групі. Тому виберемо для поля ГОДИНИ функцію Sum.
Зауваження. Якщо необхідно підрахувати частку сумарних годин групи від загальних годин всіх груп, потрібно відзначити прапорець Вычислить проценты.
В наступному сеансі вікна майстра (рис. 10.4) виберемо вид макета звіту Ступенчатый з Книжной орієнтацією. Встановимо прапорець Настроить ширину полей для размещения на одной странице.
Рис. 10.4. Вікно майстра звітів при завданні виду макета звіту
Потім задамо ім'я звіту – «Вивчення предметів у групах», що також відобразиться в заголовку звіту. Під цим ім'ям майстер автоматично зберігає звіт у базі даних. Для того щоб доробити звіт, виберемо подальші дії – Изменить макет отчета. Звіт відобразитися на екрані в режимі конструктора (рис. 10.5).
Цей звіт по основних параметрах відповідає проекту макета звіту (див. рис. 10.1). У нього включені поля із трьох взаємозалежних таблиць. Причому користувачеві не потрібно задавати зв'язки між таблицями і включати у звіт поля КП (код предмета) і ТАБН (номер викладача), що є полями зв'язку.
Рис. 10.5. Макет звіту про заняття, проведених у групах, побудований майстром і відображений у режимі конструктора
Відзначимо, що на основі інформації, що зберігається в схемі даних, і заданих користувачем полів при створенні макета звіту, майстер сам будує необхідний запит. По цьому запиту формуються записи з полів декількох взаємозалежних таблиць. У властивостях звіту (рис. 10.6) як джерело записів майстер записує інструкцію SQL, що реалізує запит і визначає вибірку заданих полів з різних таблиць.
Рис. 10.6. Вікно властивостей багатотабличного звіту Вивчення предметів у групах
Запит, створений майстром при підготовці макета звіту, можна переглянути і при необхідності відкоригувати. Щоб відобразити запит на екрані, потрібно в діалоговому вікні властивостей звіту в рядку Источник записей натиснути кнопку Построитель. Вікно, що відкривається, представлене на рис. 10.7.
Рис. 10.7. Запит, підготовлений майстром звітів при створенні макета звіту
Редагування макета звіту в режимі конструктора. У звіт, побудований майстром (див. рис. 10.5), у заголовок групи автоматично було включене поле номера групи НГ. У примітку групи майстром включені підсумки по групі: поле для підрахунку числа записів у групі і полі для підрахунку суми годин по групах. Відредагуємо надписи цих полів.
Помістимо поле з виразом =Date(), що означає поточну дату, у заголовок звіту.
Елементи заголовків стовпців розміщені у верхньому колонтитулі звіту будуть друкуватися на кожній сторінці звіту. Щоб заголовки друкувалися в кожній групі, як передбачено у проекті макета звіту на рис. 10.1, перемістимо їх у заголовок групи.
Якщо необхідно, щоб відомості про кожну групу друкувалися на окремій сторінці, вставте в примітку групи розрив сторінки. Для цього скористайтеся кнопкою Разрыв страницы на панелі Конструктора звітів.
Відредагуємо текст заголовків відповідно до проекту макета. Звіт у режимі перегляду після доробки представлений на рис. 10.8.
Зауваження. У звітах можна вивести значення поля запису або підсумкового поля групування наростаючим підсумком. Наприклад, можна накопичувати суму годин від групи до групи. Так, якщо у першій групі сумарне число годин дорівнює 262, у другий - 150, а в третій – 130, то задавши властивість поля Сумма с накоплением = Для всего, можна одержати значення: для першої групи 262, для другий 412, для третьої 542. Щоб накопичувати суму значень поля для записів у групі, потрібно встановити властивість Сумма с накоплением = Для группы. Ця властивість розміщена на вкладці Данные.
Рис. 10.8. Багатотабличний звіт (початок) про Вивчення предметів у групах
Розробка звіту на основі запиту.
Запит є потужними і зручним засобом вибірки взаємозалежних даних. Тому за допомогою запиту можна підготувати дані для складного звіту.
Розглянемо технологію створення складного звіту з використанням запиту на прикладі формування бланка “Екзаменаційна відомість” для групи студентів по заданому предмету. Бланк “ Екзаменаційна відомість” повинен виводитися з бази даних у режимі перегляду і друку звіту.
Рис. 11.1. Проект макета звіту Екзаменаційна відомість.
Розглянемо підготовку запиту, що забезпечує вибірку інформації, необхідної для формування бланка екзаменаційної відомості.
Створення запиту для підготовки даних у звіт
Таблиці джерела даних. Для вводу у шапку бланка екзаменаційної відомості значень реквізитів Вид складання, Група необхідні дані з полів ВИДЗ, НГ таблиці НАВЧАННЯ. Для виводу значень реквізитів з загальним написом Викладач (прізвище, вчене звання) необхідні дані з полів ПІБ, ЗВ таблиці ВИКЛАДАЧІ. Для вводу реквізиту Назва предмета необхідні дані з поля НП таблиці ПРЕДМЕТ.
Для вводу у табличну частину бланка екзаменаційної відомості значень реквізитів Номер студента, Прізвище І.Б. необхідні дані з полів НС, ПІБ таблиці СТУДЕНТ.
Таким чином, запит для вибірки цих взаємозалежних даних повинен бути побудований на основі таблиці НАВЧАННЯ, ВИКЛАДАЧІ, ПРЕДМЕТ, СТУДЕНТ.
Зв'язки між таблицями запиту. При створенні запиту зв'язки між таблицями встановляться автоматично. Зв'язки таблиць НАВЧАННЯ, ПРЕДМЕТ, ВИКЛАДАЧІ визначаються у відповідності зі схемою даних БД.
При створенні запиту між таблицями СТУДЕНТ і НАВЧАННЯ автоматично встановиться зв'язок по однойменному полю НГ (номер групи). Цей зв'язок є зв'язком – об'єднанням, якого нема в схемі даних бази. Зверніть увагу, що ці таблиці перебувають у відносинах багато-до-багатьох, оскільки один студент вивчає багато предметів, і один предмет вивчається багатьма студентами. Зв'язок, установлений між таблицями СТУДЕНТ і НАВЧАННЯ, визначає операцію симетричного об'єднання. При цьому записи з цих таблиць поєднуються і додаються у результат тільки в тому випадку, якщо зв'язані поля містять однакові значення.
