Запросы и отчеты в Access
.doc
4. Работа с запросами и отчетами
4.1. Создание и фильтрация запросов
Для отбора информации из БД можно использовать запросы, при работе с которыми можно устанавливать фильтры для отбора данных. Создадим запрос, позволяющий отбирать информацию о заказах на основании различных критериев, определяемых с помощью фильтра.
Задание 1. Создайте запрос, выполнив следующие операции:
-
В окне БД переключиться на вкладку «Запросы».
-
Щелкнуть кнопку Создать.
-
В диалоговом окне «Новый запрос» выбрать тип запроса (выберем наиболее простой вариант – «Простой запрос») и щелкнуть кнопку ОК.
-
В списке «Таблицы/Запросы» выберите строку «Таблица: Заказы». С помощью кнопки > выберите из списка доступных в таблице полей поля «НомерЗаказа», «ДатаПриема», «ДатаИсполнения» и «Оплачен» для включения их в запрос.
-
В списке «Таблицы/Запросы» выберите строку «Таблица: Клиенты». С помощью кнопки > выберите из списка доступных в таблице полей поле «ФИО» для включения их в запрос.
-
В списке «Таблицы/Запросы» выберите строку «Таблица: Услуги». С помощью кнопки > выберите из списка доступных в таблице полей поля «Наименование» и «Стоимость» для включения их в запрос.
-
Щелкните кнопку Далее.
-
В следующем диалоговом окне установите переключатель «Подробный…» и щелкните кнопку Далее.
-
Задайте имя запроса «Оплата заказов», установите переключатель «Открытие результатов…» и щелкните кнопку Готово.
Р езультаты созданного запроса будут представлены на экране в виде таблицы. К этой таблице можно применить фильтр для выделения части информации, нужной пользователю.
Задание 2. С помощью фильтра выведите информацию только об оплаченных заказах. Для этого необходимо:
-
Выполнить команду Записи Фильтр Изменить фильтр.
-
Установить с помощью мыши флажок в поле «Оплачен».
-
Выполнить команду Записи Применить фильтр.
В результате отбора информации с помощью фильтра в таблице остались только записи об оплаченных заказах.
Работать с такой информацией не очень удобно. Поэтому можно для работы с запросами создать формы, как и для работы с таблицами.
Вопросы для самоконтроля:
-
Как создать запрос к БД?
-
Создайте запрос, выводящий информацию и неоплаченных заказах.
4.2. Создание и просмотр отчетов
Для вывода результатов выполнения запроса можно использовать отчеты.
Задание 3. Для создания отчета выполните следующие действия:
-
Переключитесь на вкладку «Отчеты» диалогового окна базы данных заказов.
-
Щелкните кнопку «Создать».
-
В диалоговом окне «Новый отчет» выберите строку «Автоотчет: ленточный», а в качестве источника – запрос «Оплата заказов».
-
Щелкните кнопку ОК и сохраните созданный отчет под именем «Оплата заказов».
Обычно отчет создается с помощью Мастера отчетов или Автоотчета. Если отчет, предоставленный компьютером, пользователя не устраивает, то такой отчет можно доработать с помощью Конструктора.
Задание 4. Внесите в отчет итоговые данные по оплаченным и неоплаченным заказам. Для модификации отчета выполните следующие шаги:
-
Выделите значок отчета и щелкните кнопку Конструктор.
-
В окне конструктора щелкните правой кнопкой мыши по вертикальной линейке (слева) и в контекстном меню выберите команду «Сортировка и группировка».
-
В диалоговом окне команды выберите в столбце (списке) «Поле/выражение» поле «ФИО» и выберите порядок группировки «По возрастанию».
-
В свойствах группы «включите» заголовок и примечание, установив в соответствующих строках значение «Да».
(Данные в отчете будут сгруппированы по именам клиентов, причем для каждого клиента можно посчитать итоги).
-
Закройте диалоговое окно.
-
Сместите нижний колонтитул так, чтобы после примечания группы можно было вставить два вычисляемых поля.
-
На панели элементов выберите элемент «Поле» и разместите его ниже полосы «Примечание группы ФИО».
-
Измените текст надписи (подписи) к полю, введя строку «Всего заказов».
-
Правой кнопкой мыши щелкните по самому полю и выберите в контекстном меню строку «Свойства».
-
В диалоговом окне свойств поля выберите вкладку «Данные» и в строке «Данные» щелкните кнопку … для вызова построителя выражений.
-
Двойным щелчком по значку + раскройте папку «Функции» и вложенную в нее папку «Встроенные функции».
-
Выберите в расположенном справа окне категорию функций «Статистические» и в данной категории выберите функцию Count, вставьте ее в выражение двойным щелчком или щелчком по кнопке «Вставить» после выбора (в окне построителя выражений должно появиться выражение = Count («expr»)).
-
Выражение в скобках нужно заменить на название поля, количество которых будет подсчитываться. Для этого дважды щелкните мышью по строке «expr» (она будет выделена) и раскройте в расположенном ниже окне папку «Оплата заказов». Для отчета с таким именем в окне справа будут выведены все включенные в него элементы. Найдите элемент «Стоимость» и дважды щелкните по нему. Построитель выражений сформирует строку «=Count([Стоимость])».
-
Закройте окно построителя выражений.
-
Закройте диалоговое окно свойств поля.
-
Аналогичным образом разместите рядом вычисляемое поле «Общая стоимость», задав для вычисления данных выражение «=Sum([Стоимость])» (его можно ввести с клавиатуры или построить с помощью построителя выражений).
-
Закройте окно конструктора отчетов.
Итоговые данные по группе (по каждому клиенту) внесены в отчет. Просмотрите его с помощью соответствующей кнопки.
Задание 5. Внесте в отчет итоговые данные по всем заказам. Для этого снова откройте конструктор отчетов и выполните следующие шаги:
-
Расширьте в окне конструктора область примечания отчета.
-
Выделите в области примечания группы «ФИО» размещенные в этой области вычисляемые поля и скопируйте их с помощью команды копировать.
-
Выделите область примечания отчета в выполните вставку из буфера полей.
-
Переименуйте первое поле, введя в надпись строку «Итого заказов» вместо «Всего заказов».
-
Разместите новое поле, присвоив ему имя «Оплачено» и задав для вычисления данных выражение
=DSum("[Стоимость]";"[Оплата заказов]";"[Оплата заказов]![Оплачен]")
(суммируется стоимость оплаченных заказов, данные для суммирования выбираются из поля «Стоимость» отчета «Оплата заказов» по полю «Оплачен»).
-
Скопируйте это поле и вставьте его ниже, изменив надпись на «Не оплачено» и выражение для вычисления значения соответственно на
=DSum("[Стоимость]";"[Оплата заказов]";" not [Оплата заказов]![Оплачен]")
Отчет готов. Его можно дополнительно отформатировать, просмотреть и выполнить для обработки в Word или Excel с помощью команды Связь с Office из меню Сервис. Файл отчета в Word прилагается.