
- •А. В. Брешенков, а.М. Губарь
- •Издательство мгту имени н.Э. Баумана
- •Издательство мгту им. Н.Э. Баумана
- •1. Интегрированная среда Access. Построение баз данных с помощью шаблонов 9
- •1. Интегрированная среда Access. Построение баз данных с помощью шаблонов
- •1.1. Введение
- •1.2. Загрузка Access
- •1.3. Интегрированная среда Access
- •1.4. Создание баз данных с помощью шаблонов
- •Контрольные вопросы
- •2. Проектирование таблиц в среде Access
- •2.1. Введение
- •2.2. Создание таблиц путем ввода данных
- •2.3. Создание таблиц с помощью мастера
- •2.4. Создание таблиц с помощью конструктора
- •2.4.1. Описание имен полей
- •2.4.2. Назначение типов полей
- •2.4.3. Назначение свойств полей
- •2.5. Связывание таблиц на схеме данных
- •2.5.1. Введение
- •2.5.2. Связь один к одному
- •2.5.3. Связь один ко многим
- •2.5.4. Связь многие ко многим
- •Контрольные вопросы
- •3. Проектирование запросов с помощью конструктора
- •3.1. Введение
- •3.2. Проектирование запросов на выборку
- •3.3. Проектирование перекрестных запросов
- •3.4. Проектирование запроса на создание таблицы
- •3.5. Проектирование запроса на добавление
- •3.6. Проектирование запроса на обновление
- •3.7. Проектирование запроса на удаление
- •3.8. Проектирование запросов на основе нескольких таблиц
- •Контрольные вопросы
- •4. Проектирование запросов в среде Access с помощью мастеров
- •4.1 .Введение
- •4.2. Формирование простого запроса
- •4.3. Формирование перекрестного запроса
- •4.4. Вывод повторяющихся записей
- •4.5. Поиск записей без подчиненных
- •Контрольные вопросы
- •5. Проектирование форм в среде Access с помощью конструктора
- •5.1. Введение
- •5.2. Создание формы посредством конструктора
- •5.3. Редактирование формы посредством конструктора
- •5.4. Свойства формы и ее элементов
- •5.4.1. Введение
- •5.4.2. Вкладка «Макет»
- •5.4.3. Вкладка «Данные»
- •5.4.4. Вкладка «События»
- •5.4.5. Вкладка «Другие»
- •Контрольные вопросы
- •6. Проектирование форм в среде Access с помощью мастеров
- •6.1. Введение
- •6.2. Проектирование форм с помощью мастера форм
- •6.3. Автоформа в столбец
- •6.4. Автоформа ленточная
- •6.5. Автоформа табличная
- •6.6. Автоформа сводная таблица *
- •6.7. Автоформа Сводная диаграмма *
- •6.8. Диаграмма
- •6.9. Сводная таблица *
- •6.10. Создание формы посредством инструмента «Новый объект»
- •6.11. Диспетчер кнопочных форм
- •Контрольные вопросы
- •Проектирование отчетов в среде Access с помощью конструктора
- •7.1. Введение
- •7.2. Запуск конструктора отчетов
- •Формирование в отчете полей с данными
- •7.4. Проектирование отчетов с группировкой по полям
- •Использование панели элементов в конструкторе отчетов
- •7.6. Внедрение в отчет подчиненной формы или отчета
- •Контрольные вопросы
- •Проектирование отчетов в среде Access с помощью мастеров
- •8.1. Введение
- •Мастер отчетов
- •8.3. Автоотчет в столбец
- •8.4. Автоотчет ленточный
- •8.5. Мастер диаграмм
- •8.6. Мастер наклеек
- •Контрольные вопросы
- •9. Использование макросов в среде Access
- •9.1. Введение
- •9.2. Создание макроса
- •9.3. Примеры макрокоманд
- •9.3.1. Макрокоманда «ВыполнитьКоманду»
- •9.3.2. Макрокоманда «ЗадатьЗначение»
- •9.3.3. Макрокоманда «ЗапускМакроса»
- •9.3.4. Макрокоманда «ЗапускПриложения»
- •9.3.5. Макрокоманда «КопироватьОбъект»
- •9.3.6. Макрокоманда «ОткрытьЗапрос»
- •9.3.7. Макрокоманда «ПреобразоватьБазуДанных»
- •9.4. Связывание макросов с событиями
- •9.5. Создание макросов с условиями
- •Контрольные вопросы
- •Список литературы
3.3. Проектирование перекрестных запросов
Перекрестные запросы подобны структурам табличного редактора Excel, в которых присутствуют заголовки строк и заголовки столбцов. В ячейках таблицы располагаются числовые данные. Примером такой таблицы может быть ведомость зарплаты. Заголовки строк – фамилии, заголовки столбцов – даты, в ячейках располагаются суммы. В СУБД Access обычную таблицу можно преобразовать в перекрестную таблицу, то есть сформировать запрос. В качестве примера такого преобразования используем следующий запрос на выборку, приведенный на рисунке 3.17:
Рис. 3.17. Исходный запрос на выборку
Для преобразования этого запроса в перекрестный необходимо выбрать в меню, которое показано на рисунке 3.18, команду «Запрос/Перекрестный».
В результате исходный запрос преобразуется в следующий вид, приведенный на рисунке 3.19.
Рис. 3.18. Начало формирования перекрестного запроса
Рис. 3.19. Преобразование исходного запроса
Как видно из последнего рисунка, в бланке запроса возникли две новые строки «Групповая операция» и «Перекрестная таблица». По умолчанию в строке «Групповая операция» установлено значение «Группировка», которое означает, что записи группируются по одинаковым значениям. Например, если в таблице «Книги» есть несколько одноименных книг одного и того же автора, то при группировке по полям «Автор» и «Название» в перекрестном запросе эта одноименная книга будет представлена один раз. По полю «Цена» группировать данные не имеет смысла, для этого поля лучше выбрать из предлагаемого списка сумму (Sum), что отражено на рисунке 3.20:
Рис. 3.20. Назначение полям групповых операций
В строке бланка запроса «Перекрестная таблица» для всех полей необходимо выбрать из списка их назначение. Результат такого выбора показан на рисунке 3.21:
Рис. 3.21. Заполнение строки «Перекрестная таблица»
Для следующих данных, представленных в таблице «Книги» и на рисунке 3.22, результат выполнения спроектированного перекрестного запроса в режиме просмотра приведен на рисунке 3.23.
Рис. 3.22. Таблица «Книги»
Рис. 3.23. Результат выполнения перекрестного запроса
Как видно из результатов выдачи перекрестного запроса, суммарная стоимость книг Грина «Алые паруса» – 170 р. Можно привести множество примеров, когда перекрестные запросы оказываются очень полезными.
В режиме SQL полученный перекрестный запрос выглядит так:
TRANSFORM Sum(Книги.Цена) AS [Sum-Цена]
SELECT Книги.Автор
FROM Книги
GROUP BY Книги.Автор
PIVOT Книги.Название;
Ключевое слово TRANSFORM обозначает перекрестный запрос. Конструкция Sum(Книги.Цена) указывает на необходимость выполнения сложения значений полей «Цена» для одноименных строк и столбцов запроса. Конструкция AS [Sum-Цена] используется для назначения суммарной цене имени «Sum-Цена». Конструкция SELECT Книги.Автор FROM Книги показывает, что выбираются данные об авторах из таблицы «Книги». Конструкция GROUP BY Книги.Автор указывает на то, что данные группируются по значению поля «Автор» и в качестве заголовков строк перекрестной таблицы используется значение поля «Автор» таблицы «Книги». Конструкция PIVOT Книги.Название показывает, что в качестве привязки к столбцам запроса используется поле «Название» таблицы «Книги».