Как правило, запросы с параметром создаются в тех случаях, когда предполагается выполнять этот запрос многократно, изменяя лишь условия отбора. В отличие от запроса на выборку, где для каждого условия отбора создается свой запрос и все эти запросы хранятся в БД, параметрический запрос позволяет создать и хранить один единственный запрос и вводить условие отбора (значение параметра) при запуске этого запроса, каждый раз получая новый результат.
В качестве параметра может быть любой текст, смысл которого определяет значение данных, которые будут выведены в запросе. Значение параметра задается в специальном диалоговом окне. В случае, когда значение выводимых данных должно быть больше или меньше указываемого значения параметра, в поле Условие отбора бланка запроса перед параметром, заключенным в квадратные скобки ставится соответствующий знак.
Можно также создавать запрос с несколькими параметрами, которые связываются друг с другом логическими операциями "И" и "ИЛИ". В момент запуска запроса на выполнение MS Access отобразит на экране диалоговое окно для каждого из параметров. Помимо определения параметра в бланке запроса, необходимо указать с помощью кнопки Параметры (группа Показать или скрыть) соответствующий ему тип данных.
Рис. 24. Конструктор Запроса с параметром.
1. Откройте в режиме Конструктора окно запроса и добавьте в него таблицу. Создайте запрос, "перетащив" необходимые поля в бланк запроса.
2. В строке Условие отбора полей, для которых вы хотите использовать параметры, введите текст подсказки в квадратных скобках. Например, [Введите кафедру] для поля «Кафедра» таблицы «Преподаватели» (рис.24).
5. Нажмите кнопку Выполнить (группа Результаты).
6. В появившемся окне укажите значение параметра (рис.25).
7. Результат запроса будет содержать только те записи, которые удовлетворяют заданному значению параметра.
Рис.25 Окно ввода значения параметра.
Вычисления в запросах
Запрос можно использовать для выполнения расчетов и подведения итогов из исходных таблиц.
Для создания вычисляемых полей используются математические и строковые операторы. При этом Access проверяет синтаксис выражения и автоматически вставляет следующие символы:
квадратные скобки [], в них заключаются имена элементов управления;
знаки номеров (#), в них заключаются распознанные даты;
кавычки (""), в них заключается текст, не содержащий пробелов или знаков пунктуации.
Выражения, определяемые пользователем, дают возможность выполнять действия с числами, датами и текстовыми значениями в каждой записи с использованием данных из одного или нескольких полей. Например, обычное выражение позволяет найти разность значений двух полей типа даты, соединять несколько строковых значений в текстовом поле или умножить значения одного поля на итоговое значение.
Поле, содержимое которого является результатом расчета по содержимому других полей, называется вычисляемым полем. Вычисляемое поле существует только в результирующей таблице. Общий формат вычисляемого поля выглядит так:
Имя вычисляемого поля: Выражение для создания вычисляемого поля.
Примеры: Сумма баллов:[Информатика]+[Физика]+[Математика];
Премия: [Заработная плата]*0,3.
Для расчетов с использованием формул, определяемых пользователем, требуется создать новое вычисляемое поле прямо в бланке запроса путем простого ввода выражения для вычисления в ячейку Поле пустого столбца бланка запроса.
После выполнения запроса вычисляемое поле, основанное на этом выражении, выводит на экран результат вычислений, а не само выражение.
1. В строку Поле пустого столбца бланка запроса введите выражение, начинающееся со знака «=» и состоящее из имен полей, записанных в квадратные скобки и какой-либо арифметической или другой операции (рис.26).
Рис.26 Конструктор запроса с вычисляемым полем.
Рис. 27. Результат работы запроса с вычисляемым полем.
2. После выполнения запроса в результирующей таблице появится новое поле с названием «Выражение 1», используемым в качестве имени вычисления выражения (рис.27).
3.В режиме конструктора запроса измените имя «Выражение 1» на более значимое, например «Премия».
Для того чтобы ввести сложные вычисления используйте окно Построитель выражения, которое вызывается нажатием кнопки Построитель (группа Настройка запроса). Построитель выражений облегчает создание выражений, позволяя выбирать его составляющие элементы (арифметические операции, встроенные функции, названия полей имеющихся в БД таблиц и запросов и т.п.) при помощи кнопок и списков (рис.28)
Результаты вычислений также могут быть использованы в условиях отбора для определения записей, которые выбираются в запросе, или для определения записей, над которыми производятся какие-либо действия.
Рис.28. Окно Построитель выражений
Например, следующее выражение в ячейке строки Условие отбора позволяет отбирать в запросе только те записи, которые в поле «Дата рождения» таблицы «Преподаватели» имеют значение, попадающее в интервал между датой 01.01.1964 и датой 01.01.1975 - Between 01.01.1964 And 01.01.1975 (рис.29).
Запросы позволяют производить итоговые вычисления. Для этих целей в Access предусмотрены статистические функции SQL. Статистическую функцию задают в строке Групповая операция бланка запросов, которая появляется при выполнении команды Итоги (группа Показать или скрыть). Заполняя ячейки в строке Групповая операция, можно выполнить расчеты для групп записей и вычислить сумму, среднее, количество или другой тип итогового значения для вычисляемого поля.
Рис.29. Условие отбора по дате рождения
Для выполнения запроса на итоговое вычисление:
1. Находясь в режиме Конструктора запроса, выберите команду Итоги (группа Показать или скрыть). В результате чего в бланке запроса появится строка Групповая операция.
2. Для соответствующего поля выберите нужную функцию из списка.
Перекрестный запрос
Перекрестный запрос применяется в том случае, если необходимо объединить данные в формате строк-столбцов. В качестве заголовков для столбцов при проектировании таких запросов можно указать значения некоторых полей или выражений. Для примера сформируем запрос, описывающий суммарный заработок по должностям на кафедрах (на основе таблицы Преподаватели):
1. В режиме Конструктора сформируйте запрос, добавив таблицу, которая должна лежать в его основе (Преподаватели).
2. Выберите команду Перекрестный (группа Тип запроса). Строка запроса Вывод на экран в бланке запроса изменится на новую строку Перекрестная таблица и перед ней появится строка Групповая операция.
3. В строке Поле укажите поле, значения которого в новой таблице должны появиться в виде строк (Кафедра); поле, значения которого в новой таблице должны появиться в виде столбцов (Должность) и поле, содержимое которого в перекрестной таблице необходимо индицировать в качестве значения (Зарпалата). Полей, которые будут использованы в качестве заголовков, может быть несколько.
4. Щелкните мышью в строке Перекрестная таблица и выберите соответствующие значениям данных полей опции из разворачивающегося списка. Для поля Кафедра – заголовки строк, для Должность – заголовки столбцов, для Зарплата- Значение.
Рис.30. Конструктор создания перекрестного запроса.
5. Для поля, содержимое которого индицируется в качестве значений (Зарплата), в строке Групповая операция введите необходимую функцию – Avg (Рис.30). Результат перекрестного запроса смотрите на рис.31.
Рис.31. Результат перекрестного запроса.
На основе данных перекрестного запроса можно строить диаграммы, представленные в виде формы.
Запрос на создание таблицы
Запрос на создание таблицы создает новую таблицу на основе всех или части данных из одной или нескольких таблиц. БД на физическом уровне хранит только таблицы. Набор записей запросов физически не существует в БД. Ассеss создает его из данных таблиц только во время выполнения запроса. Иногда возникает необходимость сохранить извлекаемые с помощью запроса на выборку данные в новой таблице:
1. Создайте новый запрос на выборку и проверьте его корректность, перейдя в режим Таблица. Для создания резервной копии таблицы (таблицы, содержащей те же поля и в том же количестве, что и в оригинале), чтобы не перетаскивать все поля таблицы в строку Поле, достаточно поместить туда из начала списка полей таблицы символ *, заменяющий все поля таблицы.
Рис.32. Окно Создание таблицы.
2. Преобразуйте запрос на выборку в запрос на создание новой таблицы. Для этого, в группе Тип запроса, выберите команду Создание таблицы.
3. В появившемся окне введите имя новой таблицы и нажмите <ОК> (рис.32).
4. Запустите запрос на выполнение. Появится диалоговое окно (рис.33). Нажмите <Да>.
Рис.33. Диалоговое окно по созданию новой таблицы.
5. В результате выполнения запроса в списке таблиц появится новая таблица Преподаватели1.
Запрос на обновление
Используя этот тип запроса, можно изменить в базовой таблице группу блоков данных, отобранную на основе определенных критериев. Предположим мы хотим увеличить на 20% заработную плату преподавателям, у которых она составляет менее 13000 руб. Для этого:
1. При помощи Конструктора запросов выбираем таблицу Преподаватели, и в бланк запроса выбираем только одно поле Заработная плата.
2. Далее выбираем команду Обновление (группа Тип запроса).
3. В появившейся в бланке запроса строке Обновление введите выражение :[Заработная плата]*1,2, а в строке Условие отбора <13000 (рис.34).
Рис.34. Окно для создания запроса на обновление
4. Выполните запрос, подтвердив готовность на обновление данных в таблице Преподаватели.
5. Закройте запрос, подтвердив его сохранение.
6. Откройте таблицу Преподаватели и просмотрите изменение заработной платы у преподавателей.
Дата: 2018-11-18, просмотров: 290.