Создание запроса с параметром. Создание запроса с параметром в Access Какой запрос требует ввод параметров

Запрос с параметром (параметрический запрос)

Как правило, запросы с параметром (рис. 10.34) создаются в тех случаях, когда предполагается выполнять этот запрос многократно, изменяя лишь условия отбора.

Чтобы определить параметр, введите в строку "Условие отбора" вместо конкретного значения имя или фразу, заключенную в квадратные скобки (). То, что заключено внутри квадратных скобок, Access рассматривает как имя параметра. Оно выводится в окне диалога при выполнении запроса, поэтому в качестве имени параметра разумно использовать содержательную фразу. В запросе можно задать

Рис. 10.34.

несколько параметров; при этом имя каждого из них должно быть уникальным и информативным.

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

Перекрестный запрос

Перекрестный запрос – особый тип итогового запроса. Он позволяет вывести вычисляемые значения в перекрестной таблице, напоминающей электронную.

Для построения перекрестного запроса выполните следующие действия.

В режиме конструктора сформируйте запрос на выборку.

Измените тип запроса на Перекрестный (вкладка Работа с запросами , группа Тип запроса ) (рис. 10.35).

Рис. 10.35.

В нижней части бланка запроса появятся строки "Групповая операция" и "Перекрестная таблица" (рис. 10.36).

В строке "Перекрестная таблица" для каждого поля запроса выберите одну из четырех установок: Заголовки строк, Заголовки столбцов. Значение (выводимое в ячейках перекрестной таблицы) или Не отображается.

Для перекрестного запроса определите поле (можно несколько) в качестве заголовков строк. Определите одно (и только одно) поле, которое будет использоваться в качестве заголовков столбцов.

Определите одно (и только одно) поле значений. Это поле должно быть итоговым (т.е. в строке "Групповая операция" должна быть задана одна из итоговых функций, на-

Рис. 10.36.

пример суммирования (Sum), определения среднего значения (Avg) или количества (Count)).

В качестве примера рассмотрим создание перекрестного запроса, отображающего количество товаров, хранящихся на складах. В заголовках строк укажем наименования товаров, в заголовках столбцов – номера складов (рис. 10.37).

Рис. 10.37.

Вычисляемые поля в запросах

Запрос можно использовать для выполнения расчетов и подведения итогов из исходных таблиц.

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

Вычисляемое поле может также содержать результат конкатенации (объединения) значений текстовых полей. Для этого заключите текст в кавычки, в качестве оператора конкатенации используется символ "&". Например, можно создать поле, которое будет содержать результат объединения поля [Фамилия] и поля [Имя].

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

Создание вычисляемого поля осуществляется путем простого ввода выражения для вычисления в ячейку "Поле" пустого столбца бланка запроса (рис. 10.38).

Рис. 10.38.

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

В режиме конструктора запроса измените имя "Выражение!" на более содержательное. В примере "Выражение!" изменено на "ЦенаСоСкидкой".

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

Рис. 10.39.

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

Построитель поможет правильно построить выражение. Щелкните на кнопке ОК , и введенное выражение будет перенесено в бланк запроса.

Запросы с параметром создаются в тех случаях, когда предполагается выполнять этот запрос многократно, изменяя лишь условия отбора. В качестве параметра может быть любой текст, смысл которого определяет значение данных, которые будут выведены в запросе. Значение параметра задается в специальном диалоговом окне. В случае, когда значение выводимых данных должно быть больше или меньше указываемого значения параметра, в поле «Условие отбора» бланка запроса перед параметром, заключенным в квадратные скобки, ставится соответствующий знак. Можно также создавать запрос с несколькими параметрами, которые связываются друг с другом логическими операциями И и ИЛИ . Помимо определения параметра в бланке запроса, необходимо указать с помощью команды Запрос/Параметры соответствующий ему тип данных:

1. Откройте в режиме Конструктора окно запроса и добавьте в него таблицу. Создайте запрос, «перетащив» необходимые поля в бланк запроса и задав условие выбора.

2. В качестве условия введите параметр, заключенный в квадратные скобки (например, [Введите название] или >[Выше какого роста?]).

3. Выберите команду Запрос/Параметры .

4. В появившемся окне Параметры запроса введите без квадратных скобок параметр (для точности ввода воспользуйтесь «быстрыми» клавишами копирования и вставки из буфера обмена) и укажите соответствующий ему тип данных. Нажмите ОК .

5. Нажмите кнопку Запуск панели инструментов.

6. В появившемся окне укажите значение параметра.

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

Вычисляемые поля в запросах

Запрос можно использовать для выполнения расчетов и подведения итогов из исходных таблиц. Для создания вычисляемых полей используются математические и строковые операторы. При этом Access проверяет синтаксис выражения и автоматически вставляет следующие символы:

Квадратные скобки ([...]), в них заключаются имена элементов управления;



Знаки номеров (#), в них заключаются распознанные даты;

Кавычки (""), в них заключается текст, не содержащий пробелов или знаков пунктуации.

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

Например : Прибыль:[Доход]-[Расход].

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

Данный тип запросов следует применять, например, для архивирования старых блоков данных или сохранения резервных копий таблиц:

Таблица . Для создания резервной копии таблицы (таблицы, содержащей те же поля и в том же количестве, что и в оригинале), чтобы не перетаскивать все поля таблицы в строку «Поле», достаточно поместить туда символ *, заменяющий все поля таблицы и находящийся в начале списка полей таблицы.

2. Вернувшись в режим конструктора, выберите команду Запрос/Создание таблицы ....

3. В появившемся окне введите имя новой таблицы и нажмите ОК .

Запрос на обновление

Используя этот тип запроса, можно изменить в базовой таблице группу блоков данных, отобранную на основе определенных критериев:

1. Создайте новый запрос выбора и проверьте его корректность, перейдя в режим Таблица .

2. Вернувшись в режим Конструктора, выберите команду Запрос/Обновление .

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

Запрос на добавление записей

С помощью этого типа запроса блоки данных одной таблицы (все или отобранные запросом) можно поместить в конец другой таблицы:

1. Создайте новый запрос выбора тех блоков данных, которые будут добавлены в некоторую таблицу и проверьте его корректность, перейдя в режим Таблица .

2. Вернувшись в режим Конструктора , выберите команду Запрос/ Добавление ....

3. В появившемся окне введите имя таблицы, к которой нужно присоединить данные, и нажмите ОК .

Запрос на удаление записей

С помощью данного типа запроса можно удалить из базовой таблицы группу блоков данных, отобранных по определенным критериям. При этом следует тщательно проанализировать критерии отбора, поскольку эту операцию нельзя отменить:

1. Создайте новый запрос выбора удаляемых блоков данных. Отбор блоков данных выполняется в соответствии с заданными в строке Условие критериями .

2. Проверьте корректность сформулированных условий, перейдя в режим Таблица .

3. Вернувшись в режим конструктора, выберите команду Запрос/Удалить .

4. В появившейся строке Удалить установите дополнительные критерии отбора.

Создание формы

ФормыAccess позволяют создавать пользовательский интерфейс для таблиц базы данных. Форма представляет собой некий электронный бланк, в котором имеются поля для ввода данных. В форме можно: каждое поле можно разместить в точно заданном месте, выбрать для него цвет и заливку; помещать вычисляемые поля; ОLЕ-обьекты; намного проще работать с большими текстами поля типа МЕМО в текстовом окне с полосами прокрутки.

Форма строится на основе Access-таблицы или запроса . При каждом открытии сохраненной формы обновляются данные запроса, на основе которого создается форма. Благодаря этому содержимое формы всегда соответствует информации в таблицах и запросах.

Формы могут быть выведены на экран в трех видах: режим конструктора , режим формы и режим таблицы.

Access предоставляет быстрый способ создания формы на основе таблицы с использованием Мастера форм . Он задает пользователю вопросы о структуре и оформлении формы. Результатом диалога пользователя и Мастера форм является «готовая к работе» форма.

Пример

Создать таблицу и формы в режиме конструктора

1. Запустите MS Access /Новая база данных или Открыть базу данных /ОК

2. На экране появляется диалоговое окно Файл новой базы данных . В графе Имя файла вместо db1 набираем Европа /нажимает кнопку Создать после чего на экране появляется окно, в котором создается база данных

3. Нажимаем вкладку Таблицы /Создать

4. В появившемся окне Новая таблица выбираем пункт Конструктор /ОК

5. В окне таблица 1: таблица начинаем заполнять таблицу.

6. В графу Имя поля будем записывать имена полей. В нашем примере поля будут иметь следующие имена:

№ п/п, страна, площадь, население, столица, язык, валюта, карта.

Данные полябудут иметь следующиетипы данных (тип данных выбирается мышкой щелкнув по черному треугольнику):

№ п/п, площадь, население - числовой;

страна, столица, язык, валюта- текстовый;

Карта – поле объекта OLE

7. Внесем в таблицу имена полей и их тип, а затем закроем таблицу, нажав на кнопку X , расположенную в правом верхнем углу окна таблицы.

8. Запишем в окне Сохранение нашу таблицу под именем Страны/ОК

9. На вопрос Задать ключевые поля ? Ответить Нет, т.к. в нашей базе данных мы будем вызывать созданную таблицу по имени, а не по ключевому слову.

10. Нажать Открыть в окне Европа: база данных . Если вы захотите дополнить поля или изменить их тип, то должны будете нажать кнопку Конструктор.

11. Открыть Страны, на экране появится окно таблицы, заполнить ее. Для перемещения из одного поля в другое можно нажимать клавиши Enter, Tab или пользоваться установочными клавишами.

12. Для вставки карты в полеКарта выполнить следующий алгоритм: установить курсор в поле Карта / выбрать в главном меню пункт Вставка/Объект/Microsoft Clip Gallery/ ОК/ Карты/ Выбрать карту и вставить ее щелкнув левой кнопкой мыши (или из файла/обзор/открыть любую папку с рисунками)

Таблица 5.2

13. Расположите страны по алфавиту (выделить поле Страна и воспользоваться сортировкой по возрастанию)

14. Вывести на экран страну с наибольшей площадью.(Выделить курсором наибольшую площадь/)

15. Вывести на экран страну с наименьшим количеством населения. (Выделить курсором наименьшую цифру/Записи/Фильтр по выделенному/Записи/Удалить фильтр )

16. Вывести на экран столицы, начинающиеся с одной буквы (Выделить первую букву/Записи/Фильтр по выделенному/Записи/Удалить фильтр )

17. Вывести на экран страны, имеющие одинаковый государственный язык (Поставить курсор на нужную запись/Записи/Фильтр по выделенному/ Записи/ Удалить фильтр)

18. Работа с ФОРМАМИ : закрыть таблицу/выбрать объект ФОРМА/СОЗДАТЬ С ПОМОЩЬЮ МАСТЕРА /выбрать все поля с помощью кнопки >> /далее выполнять действия по алгоритму/(в один столбец)/готово.

19. После создания ФОРМЫ для того, чтобы рисунок вписывался по размеру окна необходимо щелкнуть по рисунку правой кнопкой/выбрать СВОЙСТВА / МАКЕТ/вкладку УСТАНОВЛЕНИЕ РАЗМЕРА: выбрать ПО РАЗМЕРУ

Создание отчета

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

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

Запрос с параметром . Специальный «интерактивный» тип запроса: прежде чем запрос будет выполнен, на экран выводится диалоговое окно с приглашением ввести один или ряд параметров, например условие отбора записей по определенному полю. Запрос, таким образом, допускает некоторую модификацию при каждом своем запуске, что очень удобно, например при генерировании месячных или квартальных отчетов о доходах предприятия. Запросы с параметрами могут быть отнесены к отдельному типу условно, так как ввод параметра можно организовать для запросов на выборку, запросов на изменение и перекрестных запросов.

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

Рассмотрим создание параметрического запроса на простом примере. В таблице Товары для каждого из товаров указана его фиксированная цена (поле ЦенаПродажи). Предположим, что в рамках предпраздничных акций на все товары объявляется некоторая скидка, величина которой может изменяться. Чтобы вычислить новые цены на товары с учетом той или иной скидки, можно создать запрос с параметром, в роли которого и будет выступать величина скидки.

Бланк запроса приведен на рис.1. Как видно, в бланке запроса создается новое вычисляемое поле, Цена со скидкой, в ячейку Поле которого вводится следующая формула: Цена со скидкой: [ЦенаПродажи]*(1-[Скидка в процентах]/100).

Рис. 1. Бланк запроса с одним параметром

При выполнении запроса программа Access открывает диалоговое окно Введите значение параметра , куда необходимо ввести нужную для вычислений величину (рис.2).

Рис. 2. Диалоговое окно Введите значение параметра

После ввода параметра и щелчка на кнопке ОК значения вычисляемого поля рассчитываются с учетом указанной величины скидки. Результирующая таблица показана на рис.3.

Рис. 3. Результаты выполнения запроса

Параметры могут использоваться также для ввода критерия отбора записей. Такой подход целесообразен, если заранее предполагается, что запрос будет запускаться неоднократно, но одно или несколько условий придется изменять. Например, в запросе к таблице Клиенты , отображающем список всех клиентов с указанием их данных, можно запрашивать наименование фирмы клиента. Тогда при каждом запуске запроса название фирмы, введенное пользователем в диалоговое окно Введите значение параметра , будет преобразовано в условие отбора, и в результирующую таблицу программа Access включит только те записи, которые соответствуют этому критерию. На рис.4 приведен бланк и диалоговое окно ввода такого запроса, в котором для поля Фирма в строке Условие отбора вместо конкретного значения указана подсказка для ввода параметра – [Введите название фирмы ].

В этой статье поговорим на тему «Параметрический запрос Access«. В предыдущих примерах выражение в условие отбора вводилось в бланке запроса. При этом чтобы задать новое значение в условие отбора, нужно повторно открыть запрос в режиме конструктора и ввести его. При решении практических задач значительно удобнее вводить выражение в условие отбора в процессе выполнения запроса в диалоге с пользователем, не переходя в режим конструктора. Обеспечить такой диалог можно с помощью параметра запроса. Имя параметра запроса задается в строке Условия отбора (Criteria) в квадратных скобках. При выполнении запроса это имя появится в диалоговом окне Введите значение параметра (Enter Parameter Value).

  1. Замените в условии отбора рассмотренного запроса (см. рис. 4.8) название месяца март на имя параметра ― .
  2. Выполните запрос. Открывшееся диалоговое окно (рис. 4.9) позволит ввести значение параметра запроса ― Название месяца.
  3. В запросе может быть определено несколько параметров. Например, для отбора записей по двум месяцам в условии отбора вычисляемого поля запишите два параметра, связанных логической операцией OR - OR .
  4. Для определения числового интервала используйте параметры в операторе Between and .

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

  1. Создайте в режиме конструктора запрос на выборку для таблицы ТОВАР. Перетащите в бланк запроса поля НАИМ_ТОВ и ЦЕНА.
  2. Для увеличения цены на заданный процент в вычисляемое поле запишите выражение с параметром запроса - (рис. 4.10):
    ЦЕНА+ЦЕНА*/100

ВНИМАНИЕ! Через параметрический

Access вы сможете показать увеличенные цены в таблице запроса или использовать их при построении форм, отчетов, но они не будут внесены в поле таблицы ТОВАР.

Для закрепления смотрим видеоурок:

Запрос в Access является объектом, который сохраняется в файле базы данных и может многократно повторяться. Все запросы, которые мы демонстрировали до сих пор, содержали конкретные значения дат, названий, имен и т. д. Если требуется повторить такой запрос с другими значениями в условиях отбора, его нужно открыть в режиме Конструктора, изменить условие и выполнить. Чтобы не делать многократно этих операций, можно создать запрос с параметрами. При выполнении такого запроса выдается диалоговое окно Введите значение параметра (Enter Parameter Value), в котором пользователь может ввести конкретное значение и затем получить нужный результат.

Покажем, как создавать запросы с параметрами на примере запроса «Отсортированный список товаров», который мы создавали ранее. Теперь мы с помощью этого запроса попробуем отобрать товары, поставляемые определенным поставщиком. Для этого:

  1. Откройте данный запрос в режиме Конструктора.
  2. Условие отбора (Criteria) для столбца «Название» (CompanyName) вместо конкретного значения слово или фразу и заключите их в квадратные скобки, например. Эта фраза будет выдаваться в виде приглашения в диалоговом окне при выполнении запроса.
  3. Если вы хотите, чтобы Access проверяла данные, вводимые в качестве параметра запроса, нужно указать тип данных для этого параметра. Обычно в этом нет необходимости при работе с текстовыми полями, т.к. по умолчанию параметру присваивается тип данных Текстовый (Text). Если же данные в поле запроса представляют собой даты или числа, рекомендуется тип данных для параметра определять. Для этого щелкните правой кнопкой мыши на свободном поле в верхней части запроса и выберите из контекстного меню команду Параметры (Parameters) или выполните команду меню Запрос, Параметры (Query, Parameters). Появляется диалоговое окно Параметры запроса (Query Parameters), представленное на рис. 4.31.

Рис. 4.31. Диалоговое окно Параметры запроса

  1. В столбец Параметр (Parameter) нужно ввести название параметра точно так, как он определен в бланке запроса (легче всего это сделать путем копирования через буфер обмена), только можно не вводить квадратные скобки. В столбце Тип данных (Data Type) выберите из раскрывающегося списка необходимый тип данных. Нажмите кнопку ОК.
  2. Нажмите кнопку Запуск (Run) на панели инструментов, чтобы выполнить запрос. При выполнении запроса появляется диалоговое окно Введите значение параметра (Input Parameter Value) (рис. 4.32), в которое нужно ввести значение, например Tokyo Traders. Результат выполнения запроса представлен на рис. 4.33. В него попадают только те товары, которые поставляются данным поставщиком.

Введите значение параметра

Рис. 4.32. Диалоговое окно Введите значение параметра

Рис. 4.33. Результат выполнения запроса с параметром

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

Можно разработать запрос, выводящий приглашение на ввод нескольких единиц данных, например двух дат. Затем Microsoft Access может вернуть все записи, приходящиеся на интервал времени между этими датами.

  1. Создайте запрос в режиме Конструктора на основе таблицы «Töötaja» (поля: Nimi, Perekonnanimi) и таблицы «Amet» (поле: Nimetus).
  2. Чтобы определить параметр запроса, введите в строку Criteria (Условие отбора) для столбца «Amet » (должность) вместо конкретного значения слово или фразу и заключите их в квадратные скобки, например Введи должность. Эта фраза будет выдаваться в виде приглашения в диалоговом окне при выполнении запроса.

3. Если вы хотите, чтобы Access проверяла данные, вводимые в качестве параметра запроса, нужно указать тип данных для этого параметра. Обычно в этом нет необходимости при работе с текстовыми полями, т.к. по умолчанию параметру присваивается тип данных Текстовый (Text) . Если же данные в поле запроса представляют собой даты или числа, рекомендуется тип данных для параметра определять. Для этого щелкните правой кнопкой мыши на свободном поле в верхней части запроса и выберите кнопку
(Параметры) Появляется диалоговое окно Query Parameters (Параметры запроса).

4. В столбец Параметр (Parameter) нужно ввести название параметра точно так, как он определен в бланке запроса (легче всего это сделать путем копирования), только можно не вводить квадратные скобки. В столбце Data Type (Тип данных) выберите из раскрывающегося списка необходимый тип данных. Нажмите кнопку ОК.

5. Нажмите кнопку (Запуск) , чтобы выполнить запрос. При выполнении запроса появляется диалоговое окно Введите значение параметра (Enter Parameter Value) ,

в которое нужно ввести значение, например õpetaja. В результате выполнения запроса мы увидем только те имена и фамилии, чья должность - учитель.

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

Можно разработать запрос, выводящий приглашение на ввод нескольких единиц данных, например двух дат. Затем Microsoft Access может вернуть все записи, приходящиеся на интервал времени между этими датами.

Пример

  1. Создайте запрос в режиме Конструктора на основе таблицы «Töötaja» (поля: Nimi, Perekonnanimi) и таблицы «Amet» (поле: Nimetus).
  2. Чтобы определить параметр запроса, введите в строку Criteria (Условие отбора) для столбца «Amet » (должность) вместо конкретного значения слово или фразу и заключите их в квадратные скобки, например Введи должность. Эта фраза будет выдаваться в виде приглашения в диалоговом окне при выполнении запроса.

3. Если вы хотите, чтобы Access проверяла данные, вводимые в качестве параметра запроса, нужно указать тип данных для этого параметра. Обычно в этом нет необходимости при работе с текстовыми полями, т.к. по умолчанию параметру присваивается тип данных Текстовый (Text) . Если же данные в поле запроса представляют собой даты или числа, рекомендуется тип данных для параметра определять. Для этого щелкните правой кнопкой мыши на свободном поле в верхней части запроса и выберите кнопку
(Параметры) Появляется диалоговое окно Query Parameters (Параметры запроса).

4. В столбец Параметр (Parameter) нужно ввести название параметра точно так, как он определен в бланке запроса (легче всего это сделать путем копирования), только можно не вводить квадратные скобки. В столбце Data Type (Тип данных) выберите из раскрывающегося списка необходимый тип данных. Нажмите кнопку ОК.

5. Нажмите кнопку (Запуск) , чтобы выполнить запрос. При выполнении запроса появляется диалоговое окно Введите значение параметра (Enter Parameter Value) ,

в которое нужно ввести значение, например õpetaja. В результате выполнения запроса мы увидем только те имена и фамилии, чья должность — учитель.

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

Публикации по теме