Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
metod_access.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
3.51 Mб
Скачать

Лабораторная работа 4 создание запросов

Цель работы приобрести практические навыки разработки запросов различных типов.

Краткие сведения по среде разработки

Запрос – требование на поиск, изменение или обработку данных в БД. Запрос в Access является объектом, который сохраняется в файле БД и может многократно исполняться.

Источниками данных для запроса могут выступать одна или несколько таблиц. Если запрос создается на базе нескольких таблиц, то они обязательно должны быть связаны между собой, иначе в результате запроса будет получена ложная информация.

В Access существует несколько типов запросов:

  1. запросы на выборку:

    • с параметром;

    • с функцией;

    • с арифметической операцией;

    • с подведением итогов;

  2. перекрестные запросы;

  3. запросы на создание таблицы;

  4. запросы на обновление полей;

  5. запросы на добавление записей;

  6. запросы на удаление записей и др.

Запросы на выборку используются для выбора и обработки данных. Результатом запроса является динамическая таблица, называемая также выборкой. Выборка формируется каждый раз заново на основе реальных данных из таблиц базы данных. С помощью таких запросов можно получать ответы на самые разнообразные вопросы.

Запросы на выборку с параметром позволяют вводить условие отбора посредством диалогового окна, которое Access отображает при каждом запуске этого запроса.

Запросы на выборку с функцией позволяют производить выборку и обработку данных с использованием встроенных функций Access: финансовых, статистических, дата/время и др.

Запросы на выборку с арифметической операцией позволяют значения одного столбца таблицы складывать (или вычитать, делить, перемножать) со значениями другого столбца или с конкретным заданным значением.

Запросы на выборку с подведением итогов позволяют для обработки данных использовать групповую операцию: Avg (расчет среднего арифметического элементов группы), Count (подсчет количества элементов в группе), Max, Min, Sum и др.

Перекрестные запросы запросы, результаты которых представляются в виде сводных кросс-таблиц. Строки и столбцы кросс-таблиц именованные.

Запросы на создание таблиц – запросы, позволяющие сохранять свои результаты в качестве таблиц базы данных.

Запросы на обновление значений полей таблиц – запросы, которые вносят изменения в значения полей таблиц.

Запросы на добавление записей в таблицы – запросы, позволяющие записи одной таблицы добавлять в другую, причем объединяемые таблицы могут принадлежать как одной и той же, так и разным базам данных.

Запросы на удаление записей – запросы, которые удаляют все записи или только отобранные по условию, заданному пользователем.

Задание

Создать в режиме Конструктора по два запроса каждого вида выборки и по одному запросу всех остальных типов.

Последовательность выполнения работы

Создание запросов на выборку с параметром

Запрос 1

В окне База данных перейдите на вкладку Запросы.

Создайте запрос, выводящий на экран список книг по теме «Маркетинг». Для этого на вкладке Запросы двойным щелчком выберите Создание запроса в режиме Конструктора.

В диалоговом окне Добавление таблицы выберите таблицы Тема и Книга. Закройте диалоговое окно.

В окне Конструктора из таблицы Тема двойным щелчком выберите поле Название темы, а из таблицы Книга поля: Автор, Название, Издательство, Год издания.

Переведите курсор в столбец Название темы бланка запроса и в строке Условие отбора укажите в квадратных скобках следующую фразу: [Введите название темы].

Чтобы запустить запрос, на панели инструментов выберите кнопку с пиктограммой восклицательного знака.

Появится диалоговое окно, запрашивающее ввод названия литературной темы. Укажите Маркетинг. Результатом будет список книг по данной теме.

Закройте и сохраните запрос под названием Поиск книг по заданной теме.

В окне База данных двойным щелчком выберите созданный запрос, чтобы запустить его снова. Теперь укажите тему Менеджмент. Убедитесь, что получили правильный ответ на свой запрос. Закройте запрос.

Запрос 2

Создайте запрос, выводящий на экран список книг, выданных библиотекой за отчетный период. Для этого на вкладке Запросы двойным щелчком выберите Создание запроса в режиме Конструктора.

В диалоговом окне Добавление таблицы выберите таблицы Книга, Журнал и Читатель. Закройте диалоговое окно.

В окне Конструктора из таблицы Книга двойным щелчком выберите поля: Автор, Название, из таблицы Читатель – поля: Фамилия, Имя, а из таблицы Журнал выберите поле Номер билета и дважды выберите поле Дата выдачи, так как оно понадобится нам в двух случаях.

Переведите курсор в первый столбец Дата выдачи бланка запроса, в строке Условие отбора укажите: >=[Введите дату начала периода].

Переведите курсор во второй столбец Дата выдачи, в строке Условие отбора укажите: <=[Введите дату окончания периода], а в строке Вывод на экран отключите флажок.

Чтобы запустить запрос, на панели инструментов выберите кнопку с пиктограммой восклицательного знака.

Появится диалоговое окно, запрашивающее ввод даты начала отчетного периода. Укажите, например, 01.09.05 и нажмите ОК. В окне ввода даты окончания отчетного периода укажите, например, 30.11.05 Результатом будет список книг, выдававшихся библиотекой в течение осени 2005 года.

Закройте и сохраните запрос под названием Книги, выданные за отчетный период.

Убедитесь, что получили правильный ответ на свой запрос. Закройте запрос.

Создание запросов на выборку с функцией

Запрос 1

Создайте запрос, обеспечивающий поиск сведений о книгах, выданных в апреле 2005 года. Для этого на вкладке Запросы выберите Создание запроса в режиме Конструктора.

В диалоговом окне Добавление таблицы выберите таблицы Книга, Журнал, Читатель. Закройте диалоговое окно.

В окне Конструктора из таблицы Книга выберите поля: Автор и Название, из таблицы Читатель – поля: Номер билета, Фамилия, Имя, из таблицы Журнал – поле Даты выдачи.

Переведите курсор в столбец Дата выдачи бланка запроса, в строке Условие отбора нажмите правую кнопку мыши. Из контекстного меню выберите команду Построить.

В окне построителя выражений в левом столбце найдите группу Функции, двойным щелчком раскройте группу и выберите Встроенные функции.

В среднем столбце построителя выражений двойным щелчком выберите функции Дата/время.

В правом столбце построителя выражений двойным щелчком выберите функцию Month. Данная функция извлекает из даты номер месяца.

В верхней части построителя выражений удалите все лишнее, оставив только Month ( ). Установите курсор между скобками функции.

В левом столбце найдите группу Таблицы, двойным щелчком раскройте группу и выберите таблицу Журнал.

В среднем столбце двойным щелчком выберите поле Дата выдачи.

В верхней части построителя выражений должна получиться конструкция Month ([Журнал]![Дата выдачи]). Удалите все лишнее. Добавьте к ней справа элемент =[введите номер месяца].

В итоге получается следующее выражение:

Month ([Журнал]![Дата выдачи]) =[введите номер месяца].

Нажмите кнопку ОК.

Запустите запрос. Появится диалоговое окно, запрашивающее ввод номера месяца. Укажите 4. Результатом будут сведения о том, какие книги и кому выдавались в апреле.

Закройте и сохраните запрос под названием Книги, выданные в течение месяца.

Запрос 2

Создайте запрос, обеспечивающий поиск книг по фрагменту названия. Для этого на вкладке Запросы выберите Создание запроса в режиме Конструктора.

В диалоговом окне Добавление таблицы выберите таблицу Книга. Закройте диалоговое окно.

В окне Конструктора из таблицы Книга выберите поля: Номер книги, Автор, Название, Издательство, Год издания.

Переведите курсор в столбец Название бланка запроса, в строке Условие отбора укажите Like[Введите название книги]&* .

Функция Like позволяет в диалоговом окне, запрашивающем ввод названия книги, указывать не всё название целиком, а хотя бы первые буквы.

Запустите запрос. В диалоговом окне укажите Стих. Результатом будет список книг, названия которых начинаются со слога Стих. Закройте и сохраните запрос под названием Поиск книг по фрагменту названия.

Создание запросов на выборку с арифметической операцией

Запрос 1

Создайте запрос, выводящий на экран сведения о читателях, задержавших книги на руках дольше положенного срока. Для этого на вкладке Запросы выберите Создание запроса в режиме Конструктора.

В диалоговом окне Добавление таблицы выберите таблицы Книга, Журнал, Читатель. Закройте диалоговое окно.

В окне Конструктора из таблицы Читатель выберите поля: Фамилия, Имя, из таблицы Книга – поля: Автор и Название, из таблицы Журнал – поля: Номер билета, Дата возврата план и Дата возврата факт.

Переведите курсор в чистый столбец, расположенный справа от столбца Дата возврата факт бланка запроса. В строке Поле нажмите правую кнопку мыши и из контекстного меню выберите команду Построить.

В верхней части окна построителя выражений введите Разница в днях:.

В левом столбце построителя выражений в группе Таблицы выберите таблицу Журнал.

В среднем столбце построителя выражений появится список полей данной таблицы. Двойным щелчком выберите поле Дата возврата факт, выберите кнопку со знаком минус, двойным щелчком выберите поле Дата возврата план.

В верхней части построителя выражений должна получиться конструкция:

Разница в днях: [Журнал]![Дата возврата факт] – [Журнал]![Дата возврата план]).

Удалите все лишнее. Нажмите кнопку ОК.

В строке Условие отбора данного столбца укажите: >0.

Запустите запрос.

Результатом будут сведения о том, кто из читателей, какие книги и на сколько дней задержал.

Примените сортировку по полю Номер билета.

Закройте и сохраните запрос под названием Список должников.

Запрос 2

Создайте запрос, выводящий на экран сведения о размере пени за несвоевременную сдачу книг в библиотеку из расчета: 2 рубля за каждый день. Для этого на вкладке Запросы выберите Создание запроса в режиме Конструктора.

В диалоговом окне Добавление таблицы перейдите на закладку Запросы и выберите запрос Список должников. Закройте диалоговое окно.

В окне Конструктора из запроса Список должников выберите поля: Номер билета, Фамилия, Имя, Автор, Название, Разница в днях.

Переведите курсор в чистый столбец, расположенный справа от столбца Разница в днях бланка запроса. В строке Поле нажмите правую кнопку мыши и из контекстного меню выберите команду Построить.

В верхней части окна построителя выражений введите Пени:

В левом столбце построителя выражений раскройте группу Запросы и выберите запрос Список должников.

В среднем столбце построителя выражений двойным щелчком выберите поле Разница в днях, выберите на клавиатуре знак умножить, затем цифру 2.

В верхней части построителя выражений должна получиться конструкция:

Пени: [Список должников]![ Разница в днях] *2.

Нажмите кнопку ОК.

Запустите запрос.

Результатом будут сведения о том, кто из читателей, сколько должен заплатить за каждую задержанную книгу.

Закройте и сохраните запрос под названием Расчет размера пени.

Создание запросов на выборку с подведением итогов

Запрос 1

Создайте запрос, выводящий на экран сведения о размере штрафов, уплаченных недобросовестными читателями. Для этого на вкладке Запросы выберите Создание запроса в режиме Конструктора.

В диалоговом окне Добавление таблицы перейдите на закладку Запросы и выберите запрос Расчет размера пени. Закройте диалоговое окно.

В окне Конструктора из запроса Расчет размера пени выберите поля: Номер билета, Фамилия, Имя, Пени.

На панели инструментов выберите кнопку Групповая операция. В бланк запросы будет добавлена строка Групповая операция.

Переведите курсор в столбец Пени бланка запроса и в строке Групповая операция вместо операции Группировка из раскрывающегося списка выберите Sum.

Запустите запрос.

Результатом будут сведения о том, кто из читателей сколько должен заплатить за все книги, которые он задержал.

Переименуйте столбец Sum-Пени. Для этого вернитесь в режим Конструктора с помощью кнопки Вид, расположенной на панели инструментов.

Переведите курсор в столбец Пени бланка запроса и в строке Поле укажите Штраф: Пени.

Снова запустите запрос.

Закройте и сохраните запрос под названием Расчет размера штрафов.

Запрос 2

Создайте запрос, выводящий на экран сведения об общем количестве книг в каждом из разделов фонда библиотеки. Для этого на вкладке Запросы выберите Создание запроса в режиме Конструктора.

В диалоговом окне Добавление таблицы на закладке Таблицы выберите таблицы: Раздел, Тема и Книга. Закройте диалоговое окно.

В окне Конструктора из таблицы Раздел выберите поле Название раздела, из таблицы Книга – поле Кол-во экземпляров.

На панели инструментов выберите кнопку Групповая операция.

Переведите курсор в столбец Кол-во экземпляров бланка запроса и в строке Групповая операция из раскрывающегося списка выберите операцию Sum.

Запустите запрос.

Результатом будут сведения о том, сколько всего книг содержат литературные разделы.

Переименуйте столбец Sum-Кол-во экземпляров. Для этого вернитесь в режим Конструктора с помощью кнопки Вид на панели инструментов.

Переведите курсор в столбец Кол-во экземпляров бланка запроса и в строке Поле укажите Всего книг: Кол-во экземпляров.

Снова запустите запрос.

Закройте и сохраните запрос под названием Сколько книг содержит раздел.

Создание перекрестных запросов

Чтобы оценить популярность литературных тем, создайте запрос, выводящий на экран количество книг, выданных по каждой теме. Для этого на вкладке Запросы выберите Создание запроса в режиме Конструктора.

В диалоговом окне Добавление таблицы выберите таблицы Раздел, Тема, Книга и Журнал. Закройте диалоговое окно.

В окне Конструктора из таблицы Раздел выберите поле Название раздела, из таблицы Тема – поле Название темы, а из таблицы Журнал – поле Номер книги.

Выберите команду Запрос/Перекрестный. В бланк запроса будет добавлены строки Перекрестная таблица и Групповая операция.

Переведите курсор в столбец Название раздела бланка запроса и в строке Перекрестная таблица из раскрывающегося списка выберите Заголовки строк.

Переведите курсор в столбец Название темы бланка запроса и в строке Перекрестная таблица из раскрывающегося списка выберите Заголовки столбцов.

Переведите курсор в столбец Номер книги бланка запроса, в строке Перекрестная таблица из раскрывающегося списка выберите Значение, а в строке Групповая операция из раскрывающегося списка выберите Count.

Запустите запрос. Результатом будет кросс-таблица, содержащая сведения о том, сколько книг из какого раздела по какой теме было выдано.

Закройте и сохраните запрос под названием Количество книг, выданных по теме.

Создание запроса на создание таблицы

Создайте запрос, выводящий на экран список научной литературы, которой располагает библиотека, и сохраняющий данные сведения в таблице Научная литература. Для этого на вкладке Запросы выберите Создание запроса в режиме Конструктора.

В диалоговом окне Добавление таблицы выберите таблицы Раздел, Тема, Книга. Закройте диалоговое окно.

В окне Конструктора из таблицы Раздел выберите поле Название раздела, из таблицы Тема – поле Название темы, а из таблицы Книга – поля: Автор, Название, Издательство, Год издания.

Переведите курсор в столбец Название раздела бланка запроса, в строке Условие отбора укажите Научная литература, а в строке Вывод на экран уберите флажок.

Выберите команду Запрос/Создание таблицы. В диалоговом окне Создание таблицы укажите название создаваемой таблицы Научная литература, переключатель оставьте в положении В текущей базе данных и нажмите кнопку ОК.

Запустите запрос.

Появится сообщение о числе записей, которые будут помещены в новую таблицу в результате выполнения запроса. Нажмите кнопку Да.

Закройте и сохраните запрос под названием Список научной литературы.

В окне База данных перейдите на вкладку Таблицы и убедитесь, что таблица Научная литература действительно создана и содержит правильные данные.

Аналогичным образом, с помощью запроса, создайте таблицу Художественная литература.

Создание запроса на обновление значений поля таблицы

Проведите переоценку стоимости книг. Создайте запрос, увеличивающий размер цены каждой книги на 10%. Для этого на вкладке Запросы выберите Создание запроса в режиме Конструктора.

В диалоговом окне Добавление таблицы выберите таблицу Книга. Закройте диалоговое окно.

В окне Конструктора из таблицы Книга выберите поле Цена.

Выберите команду Запрос/Обновление. В бланк запроса будет добавлена строка Обновление.

Переведите курсор в столбец Цена бланка запроса. В строке Обновление нажмите правую кнопку мыши и из контекстного меню выберите команду Построить.

Создайте следующее выражение: [Книга]![Цена]*1,1.

Запустите запрос. Появится сообщение о числе записей, которые будут обновлены в результате выполнения запроса. Нажмите кнопку Да.

Закройте и сохраните запрос под названием Обновление цен.

В окне База данных перейдите на вкладку Таблицы и убедитесь, что цены на книги в таблице Книги действительно увеличились на 10%.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]