Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по Access 2003.doc
Скачиваний:
4
Добавлен:
26.04.2019
Размер:
744.96 Кб
Скачать

3.3. Запросы с параметрами.

Запросы с постоянными критериями отбора не всегда удобны. Например, при поиске покупателя, фамилия которого начинается на определенную букву, хорошо было бы вводить эту букву с клавиатуры при выполнении запроса. Вводимые с клавиатуры в процессе выполнения запроса данные называются параметрами. Они заключаются в квадратные скобки. Параметр представляет собой шаблон, который используется в условии и заполняется в процессе выполнения запроса. Например, [Цена товара] или [Дата покупки]. Параметр не должен совпадать с именем поля таблицы, так как система в этом случае не поймет, что речь идет о параметре! И наоборот, если вы напишете в запросе имя поля с ошибкой, система будет считать, что это параметр и при вызове запроса на выполнение выведет окно ввода этого параметра.

Создадим запрос для поиска покупателя, фамилия которого начинается на определенную букву. Для этого скопируем запрос “Покупатели на букву П”. В качестве нового имени запроса введем Покупатели на вводимую букву. Вызовем Конструктор и внесем необходимые изменения в запрос. В качестве Условия отбора запишем: Like [Начало фамилии] & ”*”. Здесь использован оператор & для слияния двух строковых выражений. Теперь при выполнении запроса появится окно Введите значение параметра с приглашением Начало фамилии (которое совпадает с именем параметра в запросе).

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

  1. Создать запрос “Товары дороже чем с параметром” для таблицы ТОВАР с полями Наименование, Цена, отсортированный по первому полю, на основе запроса “Товары дороже чем”. Запрос должен выводить товары, цена которых не меньше определенной величины (Условие отбора: >=[Цена товара]). Кроме того, надо выбрать пункт меню Запрос / Параметры ..., указать Параметр Цена товара и Тип данных “Двойное с плавающей точкой”.

  2. Создать запрос “Продажи раньше чем” для таблицы ЗАКАЗ (Условие отбора: <= [Дата]). Параметр Дата должен иметь тип “Дата/время”.

3.4.Запросы с вычисляемыми полями

Для вычисляемого поля в запросе используют пустую свободную колонку в нижней части окна запроса. Формула вычислений пишется в строке Поле пустого столбца (обычно там стоят имена полей из таблиц). Она может содержать константы, имена полей таблиц и запросов, параметры. В формулах используются знаки арифметических ("+" – сложение, "-" – вычитание, "*" – умножение, "/" – деление, "^" – возведение в степень) и логических операций. Можно писать круглые скобки для указания порядка выполнения операций и использовать разнообразные встроенные функции Access (математические, строковые, финансовые и др.). В СУБД Access имеется специальный Построитель выражений (вызываемый нажатием клавиш Ctrl-F2), который облегчает запись формул, особенно содержащих поля таблиц и запросов. Его также можно вызвать из контекстного меню, которое открывается щелчком правой кнопки мыши в пустой ячейке Поле – пункт Построить… .Он позволяет вводить точные названия из списка, расположенного в левой части окна Построителя, содержащего названия полей таблиц, запросов, форм и т.п., что дает возможность избежать ошибок при вводе названий полей с клавиатуры и ускоряет ввод формул. Заголовок вычисляемого поля пишется перед формулой, за ним ставится двоеточие.

Создадим запрос “Товар с 25 процентами” для таблицы ТОВАР, в котором введем вычисляемое поле Стоимость товара. Оно будет заполняться по формуле: [Цена]*1,25. Перетащим в бланк QBE все поля таблицы (значок *). В заголовке второй колонки запишем: Стоимость товара: [Цена]*1,25. Выполним запрос.

Создать запрос “Уценка товара” для таблицы ТОВАР с вводом параметра Процент уценки, для чего ввести вычисляемое поле Новая цена по формуле: [Цена]*(100 - [Процент уценки])/100. Для создания запроса скопировать запрос “Товар с 25 процентами” через буфер обмена. Кроме того, надо в пункте меню Запрос / Параметры... указать имя параметра Процент уценки и его тип “Двойное с плавающей точкой".