- •Модели организации баз данных
- •Основные этапы разработки приложения
- •Стратегия разработки приложения
- •Данные и информация
- •Отбор необходимых данных
- •Нормализация
- •Чужие ключи
- •Архитектура Microsoft Access
- •Создание базы данных
- •Создание новой пустой таблицы
- •Числовой формат
- •Формат «дата/время»
- •Денежный формат
- •Формат «счетчик»
- •Логический формат
- •Поле объекта OLE
- •Гиперссылка
- •Импорт данных. Импорт текстового файла
- •Многотабличные базы данных. Отношения между таблицами
- •Создание связей между таблицами
- •Работа с данными при помощи запросов
- •Выбор данных из одной таблицы
- •Включение полей в запрос
- •Ввод условий отбора и выбор между AND и OR
- •Вычисляемые поля
- •Итоговые запросы
- •Перекрестные запросы
- •Модификация данных с помощью запросов на изменение. Проверка правильности отбора записей с помощью запроса на выборку
- •Типовые ошибки и проблемы, возникающие при выполнении запросов на изменение
- •6.7. Построение и применение форм
- •Обзор форм
- •Конструктор форм
- •Панель элементов
- •Основные сведения об отчетах
- •Создание отчета
- •Разработка отчета в режиме конструктора
- •Сортировка и группировка информации
- •Задание условий группировки и сортировки
- •Задание диапазонов группировки
- •Задание
- •Содержание отчета
- •Контрольные вопросы
Рис. 6.7. Запрос на основе таблицы тАттестат с вычисляемым полем Среднее
Итоговые запросы
Для вычисления итоговых значений надо нажать кнопку Групповые операции(), чтобы в бланке QBE появилась строка Групповые операции. Access использует установку Группировка в строке Групповая операция для любого поля, занесенного в бланк запроса. Теперь записи по каждому полю группируются, но итог не подводится. Если выполнить запрос сейчас, вы получите набор записей, включающий по одной строке для каждого уникального значения поля запроса – но без итогов. Для получения итогов замените установку Группировка в строке Групповая операция на конкретные итоговые функции.
Access предоставляет девять функций, обеспечивающих выполнение групповых операций. Вы можете задать нужную вам функцию, введя ее имя с клавиатуры в строке Групповая операция бланка запроса или выбрав ее в раскрывающемся списке.
Итоговые функции Access:
Sum – вычисляет сумму всех значений заданного поля в каждой группе.
Avg – вычисляет среднее арифметическое всех значений данного поля в каждой группе. Min – возвращает наименьшее значение, найденное в этом поле внутри каждой группы. Max – возвращает наибольшее значение, найденное в этом поле внутри каждой группы. Count – возвращает число записей, в которых значения данного поля отличны от Null. StDev – стандартное отклонение всех значений данного поля в каждой группе.
Var –вычисляет дисперсию значений данного поля в каждой группе. First – возвращает первое значение этого поля в группе.
Last – возвращает последнее значение этого поля в группе.
На рис. 6.8 показан пример запроса с применением групповой операции Sum. Данный запрос является многотабличным и позволяет определить сумму выплат, сделанных каждым абитуриентом.
26
Рис. 6.8. Запрос с применением групповой операции Sum
Перекрестные запросы
Access поддерживает особый тип итоговых запросов, называемый перекрестными запросами. Они позволяют увидеть вычисляемые значения в виде перекрестной таблицы, напоминающей электронную (рис. 6.9).
Для построения перекрестного запроса выделите имя нужной таблицы в окне базе данных и
выберите Новый запрос в раскрывающемся списке кнопки Новый объект () на панели инструментов. В окне диалога Новый запрос выберите Конструктор, а затем в окне конструктора выберите команду Запрос->Перекрестный. Access добавит в бланк запроса строку Перекрестная таблица. В этой строке для каждого поля перекрестного запроса может быть выбрана одна из четырех установок: Заголовки строк, Заголовки столбцов, Значение (выводимое в ячейках перекрестной таблицы) и Не отображается. Для перекрестного запроса надо определить по крайней мере одно поле в качестве заголовков строк, одно для заголовков столбцов и одно поле значений. Каждое поле, являющееся заголовком столбцов, должно иметь в строке Групповая операция установку Группировка. Для поля, использующегося в качестве заголовков строк, в строке Групповая операция должна быть установлена операция Группировка, выбрана одна из итоговых функций (Count, Min, и т. д.) или введено выражение, содержащее итоговую функцию. Для поля с установкой Значение выбирается одна из итоговых функций или вводится выражение, использующее итоговую функцию.
Как и в других типах итоговых запросов, для отбора данных, включаемых в набор записей, можно использовать дополнительные поля. Для них необходимо выбрать установку Условие в строке
Групповая операция и Не отображается в строке Перекрестная таблица, а затем ввести условие отбора. Условие отбора можно также задать для любого поля, используемого в качестве
27
заголовков столбцов, а данные можно сортировать по любым полям. (По умолчанию Access сортирует заголовки столбцов по возрастанию.)
Построить перекрестный запрос можно другим, более простым способом, с помощью мастера. Для этого в окне диалога Новый запрос надо выделить пункт Перекрестный запрос и нажать Ok. Затем мастер выведет на экран последовательно ряд окон, в которых запросит необходимые данные для построения перекрестного запроса. Пример результата выполнения перекрестного запроса показан на рис. 9,б.
а
б
Рис. 9. Перекрестный запрос в режиме конструктора (а), результат выполнения перекрестного запроса (б)
Модификация данных с помощью запросов на изменение. Проверка правильности отбора записей с помощью запроса на выборку
В режиме конструктора в меню Запрос присутствуют команды для четырех типов запросов на изменение: Создание таблицы, Обновление, Добавление, Удаление. Однако прежде чем приступить к созданию и выполнению запроса на изменение записей в базе данных, создайте запрос на выборку с условием отбора, позволяющим найти все подлежащие обновлению записи. После того, как Access выберет нужные записи, можно преобразовать запрос на выборку в запрос на обновление или в другой запрос на изменение.
Запрос на Создание таблицы используется для сохранения извлекаемых с помощью запроса на выборку данных в новой таблице.
28