Как создать параметрический запрос
Запрос с параметром (параметрический запрос)
Как правило, запросы с параметром создаются в тех случаях, когда предполагается выполнять этот запрос многократно, изменяя лишь условия отбора. В отличии от запроса на выборку, где для каждого условия отбора создается свой запрос и все эти запросы хранятся в БД, параметрический запрос позволяет создать и хранить один единственный запрос и вводить условие отбора (значение параметра) при запуске этого запроса, каждый раз получая новый результат. В качестве параметра может быть любой текст, смысл которого определяет значение данных, которые будут выведены в запросе. Значение параметра задается в специальном диалоговом окне. В случае, когда значение выводимых данных должно быть больше или меньше указываемого значения параметра, в поле «Условие отбора» бланка запроса перед параметром, заключенным в квадратные скобки ставится соответствующий знак. Можно также создавать запрос с несколькими параметрами, которые связанны друг с другом логическими операциями И и ИЛИ. В момент запуска на выполнение MS Access отобразит на экране диалоговое окно для каждого из параметров. Помимо определения параметра в бланке запроса, необходимо указать с помощью команды Запрос — Параметры соответствующий ему тип данных:
1. Откройте в режиме Конструктора окно запроса и добавьте в него таблицу. Создайте запрос, «перетащив» необходимые поля в бланк запроса и задав условие выбора.
2. В качестве условия введите параметр, заключенный в квадратные скобки (например, [Введите название] или [Выше какого роста?]).
3. Выберите команду Запрос — Параметры.
4. В появившемся окне Параметры запроса введите без квадратных скобок параметр (для точности ввода воспользуйтесь «быстрыми » клавишами копирования и вставки из буфера обмена) и укажите соответствующий ему тип данных. Нажмите OK.
5. Нажмите кнопку Запуск панели инструментов.
6. В появившемся окне укажите значение параметра.
7. Результат запроса будет содержать только те значения, которые удовлетворяют заданному значению параметра.
18.07.2010 20:46 Информатика Артем 29952 0
Похожие статьи
- Запросы в Microsoft Access
- Запрос на выборку Microsoft Access
- Вычисляемые поля в запросах Access
- Проектирование запроса Access
- Окно запроса Access
- Формирование запроса Access
- Включение полей в запрос Access
- Задание критериев Access
- Сортировка в Access
- Выполнение запроса Access
Использование параметров для ввода данных при выполнении запроса
Чтобы настроить в запросе к базе данных рабочего стола Access ввод условий при его выполнении, создайте запрос с параметрами. Это даст возможность использовать запрос повторно, не открывая его в Конструктор для изменения условий.
Примечание: Эта статья не относится к веб-приложениям Access.
Терминология
Прежде чем перейти к описанной ниже пошаговой процедуре, полезно ознакомиться с несколькими терминами.
- Параметр. Параметр — это часть сведений, предоставляемых запросу при его выполнении. Параметры можно использовать отдельно или в составе длинных выражений для формирования условия запроса. Параметры можно добавить в запрос любого из следующих типов:
- на выборку;
- перекрестный;
- на добавление;
- на создание таблицы;
- на обновление.
Дополнительные сведения об указанных выше типах запросов см. в статье Знакомство с запросами.
Создание запроса с параметрами
Создание параметра аналогично добавлению обычного условия в запрос:
- Создайте запрос на выборку и откройте его в конструкторе.
- В строке «Условия» поля, к которым вы хотите применить параметр, введите текст, который вы хотите отобразить в поле параметра, в квадратных скобках. Например: [Введите дату начала:]
- Повторите шаг 2 для каждого поля, в которое необходимо добавить параметры.
При запуске запроса текст отображается без квадратных скобок.
Введите нужное значение и нажмите кнопку ОК.
В условии можно использовать несколько параметров. Например, выражение Between [Введите дату начала:] And [Введите дату окончания:] при выполнении запроса создаст два поля.
Указание типов данных для параметра
Можно настроить параметр так, чтобы он принимал только определенный тип данных. Это особенно важно для числовых и денежных данных, а также данных даты и времени, так как в таком случае пользователи получат более содержательное сообщение об ошибке при вводе неправильного типа данных, например при вводе текста вместо денежного значения.
Примечание: Если параметр настроен на прием текстовых данных, любое введенное значение будет распознаваться как текст, а сообщение об ошибке не будет выводиться.
Чтобы задать тип данных для параметра в запросе, выполните указанные ниже действия.
- Когда запрос открыт в конструкторе, на вкладке Конструктор в группе Показать или скрыть нажмите кнопку Параметры.
- В диалоговом окне Параметры запроса в столбце Параметр введите текст запроса на ввод каждого из параметров, для которых требуется указать тип данных. Проверьте, соответствуют ли параметры запросам на ввод, указанным в строке Условия в бланке запроса.
- В столбце Тип данных выберите тип данных для каждого параметра.
Добавление параметра в запрос на объединение
Так как запрос на объединение нельзя просмотреть в бланке запроса, действия с ним будут немного отличаться.
- Откройте запрос на объединение в режиме SQL.
- Добавьте к нему предложение WHERE, содержащее поля, в которые нужно добавить параметры. Если предложение WHERE уже существует, проверьте, включены ли в него все поля, в которые нужно добавить параметры. Если нет, добавьте недостающие поля.
- Введите запрос параметра в предложение WHERE, например WHERE [StartDate] = [Введите дату начала:]. Имейте в виду, что во все разделы запроса необходимо добавить одинаковые фильтры. На рисунке выше запрос содержит два раздела (разделенные ключевым словом UNION), поэтому параметр нужно добавить дважды. Но при выполнении запроса ввод данных запрашивается только один раз (предполагается, что во всех разделах указан одинаковый запрос).
Объединение параметров с помощью подстановочных знаков для большей гибкости
Как и в случае обычных условий, вы можете объединить параметры с помощью ключевого слова Like и подстановочных знаков для поиска соответствий в более широком диапазоне элементов. Предположим, что нужно запросить страну или регион и при этом сопоставить их со значениями, которые содержат строку параметра. Для этого выполните указанные ниже действия.
- Создайте запрос на выборку и откройте его в конструкторе.
- В строке Условия поля, в которое нужно добавить параметр, введите Like «*»&[, текст сообщения, а затем ]&»*».
При запуске запроса с параметрами запрос появляется в диалоговом окне без квадратных скобок и без ключевого слова Like или
поддиаметров:После ввода параметра запрос возвратит значения, содержащие строку параметра. Например, строка параметра us возвратит элементы, в которых поле параметра имеет значение «Австралия» или «Австрия».
Дополнительные сведения о подстановочных знаках см. в статье Использование подстановочных знаков в качестве условий.
Возврат элементов, не соответствующих параметру
Вместо возврата элементов, соответствующих параметру, можно создать запрос, возвращающий элементы, которые ему не соответствуют. Например, может потребоваться запросить год и возвратить элементы со значением года, большим чем указанное. Для этого введите оператор сравнения слева от запроса параметра в квадратных скобках, например >[Введите год:].
Видео: использование параметров в запросах
Использовать в запросе параметр не сложнее, чем создать запрос на основе условий. Запрос можно настроить таким образом, чтобы предлагалось ввести определенное значение, такое как артикул товара, или несколько значений, например две даты. Для каждого параметра запрос выводит отдельное диалоговое окно, в котором предлагается ввести значение.
В этом видео подробнее рассказывается о создании параметров в запросах.
Параметрический запрос
Параметрический запрос – это запрос, при выполнении которого задаётся переменный параметр. Для создания параметрического запроса необходимо сначала создать простой запрос для вывода нужных полей (в том числе и полей, по которым будут вводиться параметры). Чтобы определить параметр, необходимо в поле, для которого задаётся переменное значение в строке Условие отбора вместо конкретного значения ввести фразу, заключенную в квадратные скобки. То, что заключено в квадратных скобках, АССЕSS рассматривает как имя параметра. Оно выводится в окне диалога при выполнении запроса. Поэтому в качестве имени параметра разумно использовать содержательную фразу. В одном запросе можно задать несколько параметров. При этом имя каждого параметра должно быть уникальным и содержательным. При выполнении запроса АССЕSS попросит ввести поочередно значения для каждого из параметров, используя окна диалогов. Пример. Из базы данных вывести сведения о поставках поставщиками конкретного материала (вводимого по запросу) в заданный период (указанный в запросе). Ход выполнения: Чтобы вывести эти сведения необходимо создать параметрический запрос с тремя параметрами. В верхнюю часть запроса необходимо поместить таблицы ПОСТАВКА, МАТЕРИАЛ, ПОСТАВЩИК, т.к. понадобятся поля только из этих таблиц. В нижней части запроса необходимо выбрать нужные поля из соответствующих таблиц. Для поля Материал в строке Условие отбора необходимо ввести параметр [Введите материал]. Для указания диапазона дат нужного периода в поле Дата_поставки в строке Условие отбора необходимо ввести BETWEEN [Введите начальную дату] AND [Введите конечную дату]. В результате будет сформирован запрос, который в режиме конструктора имеет вид, показанный на рис. 8.13. Если выполнить этот запрос, щелкнув мышью по его названию дважды, то сначала появится диалоговое окно для ввода значения параметра [Введите материал], показанное на рис. 8.14, а после ввода значения «песок» и щелчка по кнопке ОК этого диалогового окна поочередно появятся диалоговые окна для ввода значений параметров [Введите начальную дату] и [Введите конечную дату]. После ввода в них значений «1.07.01» и «31.12.01» соответственно, как показано на рис. 8.15 – 8.16, можно будет увидеть набор записей этого запроса, показанный на рис. 8.17.
Итоговый запрос
- поля, по которым нужно группировать данные, т.е. при изменении значения которых необходимо подводить итоги;
- поля, в которых нужно получить итоговые показатели.
Иногда нужны не отдельные записи таблицы, а итоговые значения по группам данных. Итоговый запрос позволяет получить значения таких итоговых показателей, как суммарное, среднее, минимальное, максимальное значения и др. Для расчета этих показателей используются следующие групповые операции:Sum (сумма), Count (количество), Avg (среднее)и др. Для получения итоговых показателей, данные необходимо сгруппировать, т.е. отсортировать их по тому столбцу, при изменении значений которого, подводятся итоги. Если группировка осуществляется по нескольким столбцам, то данные сначала сортируются по самому левому столбцу с группировкой, а затем по следующему столбцу с группировкой. Поэтому в запросе нужно располагать левее то поле с группировкой, по которому должна осуществляться внешняя сортировка. Для создания итогового запроса необходимо выполнить следующие действия: 1. Создать простой запрос на выборку, который позволяет вывести следующие поля:
Примечание. Если по какому-либо полю нужно получить несколько итоговых показателей (например, максимальное, минимальное, суммарное значение и др. показатели), то это поле нужно поместить в запрос столько раз, сколько показателей по нему нужно получить. 2. В режиме конструктора запроса выполнить команду «Групповые операции», нажав на панели инструментов кнопку или щелкнув правой кнопкой мыши на любом поле и в появившемся меню выбрав пункт «Групповые операции». 3. В нижней части запроса в режиме конструктора появится дополнительная строка Групповая операция, в каждом столбце которой появится операция «Группировка». Операция «Группировка» позволяет группировать данные по тому столбцу, в котором она находится. Если в каком-либо поле необходимо получить итоговый показатель, то необходимо изменить для этого поля тип групповой операции. Для этого установить курсор в строке Групповая операцияэтого столбца и с помощью раскрывающегося списка выбрать нужную групповую операцию,. Пример. Из базы данных вывести следующие данные: общее, минимальное и максимальное количество каждого вида материала, поставленного каждым поставщиком, указав количество однотипных поставок. Ход выполнения: Для вывода нужных сведений необходимо создать итоговый запрос с двумя уровнями группировки и четырьмя итоговыми показателями. В верхнюю часть запроса необходимо поместить таблицы ПОСТАВКА, МАТЕРИАЛ, ПОСТАВЩИК, т.к. понадобятся поля только из этих таблиц. В нижней части запроса необходимо выбрать поля Поставщик, Материал, Количество_материала и Код_поставки из соответствующих таблиц. Причем поле Поставщик следует расположить левее, чем поле Материал, т.к. внешняя сортировка должна осуществляться по полю Поставщик, а поле Количество_материала следует поместить в запрос три раза, т.к. по этому полю нужно получить три итоговых показателя. Затем выполнить команду «Групповые операции», нажав на панели инструментов кнопку В нижней части запроса в режиме конструктора появится дополнительная строка Групповая операция, в каждом столбце которой появится операция «Группировка». Затем в первом столбце Количество_материала следует изменить тип групповой операции на Sum, во втором – на Min и в третьем — на Max, а в столбце Код_поставки – на Count. В результате будет сформирован запрос, который в режиме конструктора имеет вид, показанный на рис. 8.18. Если выполнить этот запрос, щелкнув мышью по его названию дважды, то можно увидеть набор записей этого запроса, показанный на рис. 8.19.
8.3 Параметрические запросы
Запросы, представляющие собой варианты базового запроса и незначительно отличающиеся друг от друга, называются параметрическими. В параметрическом запросе указывается критерий, который может изменяться по заказу пользователя. Последовательность создания параметрического запроса: Создать query в режиме конструктора или открыть существующий запрос в режиме конструктора, например «Образец запроса в режиме Конструктор». В Бланк запроса в строке Условия отбора ввести условие отбора в виде приглашения в квадратных скобках, например [Введите фамилию] Закрыть окно Запрос на выборку, на вопрос о сохранении изменения ответить – Да. Вернуться в окно базы данных, где созданный query будет выделен. Выполнить query, щелкнув по кнопке: Открыть. В появившемся на экране окне диалога «Введите значение параметра» надо ввести, например фамилию студента, информацию об успеваемости которого необходимо получить, выполнить щелчок по кнопке ОК.
9. Проектирование форм и работа с ними
Access предоставляет возможность вводить данные как непосредственно в таблицу, так и с помощью форм. Форма в БД — это структурированное окно, которое можно представить так, чтобы оно повторяло форму бланка. Формы создаются из набора отдельных элементов управления. Внешний вид формы выбирается в зависимости от того, с какой целью она создается. Формы Access позволяют выполнять задания, которые нельзя выполнить в режиме таблицы. Формы позволяют вычислять значения и выводить на экран результат. Источником данных для формы являются записи таблицы или запроса. Форма предоставляет возможности для: ввода и просмотра информации базы данных изменения данных печати создания сообщений Способы создания форм: Конструктор форм (предназначен для создания формы любой сложности) Мастер форм (позволяет создавать формы различные как по стилю, так и по содержанию) Автоформа: в столбец (многостраничная – поля для записи выводятся в один столбец, в форме одновременно отображаются данные для одной записи) Автоформа: ленточная (все поля записи выводятся в одну строку, в форме отображаются все записи) Автоформа: табличная (отображение записей осуществляется в режиме таблица) Автоформа: сводная таблица Автоформа: сводная диаграмма Диаграмма (создается форма с диаграммой, построенной Microsoft Graph) Сводная таблица (создается форма Access, отображаемая в режиме сводной таблицы Excel) Алгоритм создания форм следующий: Открыть окно БД В окне БД выбрать вкладку Формы Щелкнуть на пиктограмме Создать, расположенной на панели инструментов окна БД В появившемся диалоговом окне «Новая форма» Выбрать способ создания формы и источник данных Щелкнуть на кнопке ОК
9.1. Создание формы с помощью Мастера
Вызвать Мастер форм можно несколькими способами. Один из них – выбрать Мастер форм в окне диалога Новая форма и щелкнуть на кнопке ОК. Откроется окно диалога Создание форм, в котором необходимо отвечать на вопросы каждого текущего экрана Мастера и щелкать на кнопке Далее. В первом окне необходимо выбрать поля из источника данных (таблиц или запросов). Для этого надо открыть список Таблицы и запросы, щелкнув на кнопку, справа. Затем доступные поля требуется перевести в Выбранные поля, выделив их и щелкнув на кнопку >>. Например, выберем источник – таблицу Студенты и все ее поля, а затем необходимо щелкнуть на кнопке Далее. В этом окне надо выбрать внешний вид формы, например в один столбец и щелкнуть Далее. После выбора стиля формы (например, официальный), требуется перейти в последнее окно, щелкнув на кнопке Далее. В последнем окне Мастера требуется ввести имя формы и указать дальнейшие действия: Открыть форму для просмотра и ввода данных; Изменить макет формы. После ввода имени формы (например, Студенты), выбора режима: «Открыть форму для просмотра и ввода данных» и щелчка на кнопке Готово, получим следующую форму для ввода и просмотра записей в таблицу Студенты.