double arrow

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


Использование в запросе автоподстановки для автоматического ввода данных

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

Условия, при которых возможна автоподстановка:

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

· Со стороны «один» должен быть уникальный индекс (ключ или «Индексированное поле» со свойствами «Совпадение не допускаются» - «Да»).

· В запрос берется поле со стороны «многие».

· Значение, введенное в связанное поле на стороне «многие» уже должно присутствовать на стороне «один».

Что такое запрос с параметрами уже говорилось при рассмотрении типов запросов. В описании Access for W95 сказано, что такая возможность дает экономию времени в том смысле, что не нужно каждый раз пересоздавать запрос, заходя в конструктор запросов и изменяя одно или несколько условий.




Эти рассуждения запутывают суть. Дело в том, что запрос с параметрами дает качественно новую возможность, а не экономию времени. Эта возможность отделяет сферу действия ПОЛЬЗОВАТЕЛЯ от сферы действия РАЗРАБОТЧИКА приложения Access. Разработчик заранее разрабатывает запрос, выводя задание ряда параметров его условий пользователю. Пользователь вообще понятия не имеет о том, что такое запрос и прочие вещи Access.

Итак, запрос с параметрами- это такой запрос, при запуске которого открывается диалоговое окно с приглашением ввести условие отбора. Условий (и окон) может быть несколько.

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

 
 

Запрос создается в конструкторе запросов обычным способом, но в строке бланка с названием «Условия отбора», перед теми подписями, где должна быть поставлено конкретное значение параметра, нужно написать текст приглашения для диалогового окна в квадратных скобках.

Если речь идет о диапазоне дат (что также типично для таких запросов), то условие отбора может выглядеть:

Between [Введите начальную дату:] And

[Введите конечную дату:]

При выполнении запроса (допустим для получения отчета) появится диалоговое окно:

На приглашение существует ограничение 50 символов.

Это окно является частным случаем так называемых всплывающих форм. Оно появляется поверх других окон, забирает фокус ввода на себя и не дает возможность активизировать что-либо другое, пока не нажаты одна из клавиш «ОК» или «ОТМЕНА». Такая форма (диалог) называется МОДАЛЬНОЙ.

Если появившееся всплывающее окно позволяет перевести фокус ввода в другую форму (окно), то она называется НЕМОДАЛЬНОЙ.

Если параметров (и окон) несколько, то они появляются в порядке следования в бланке в конструкторе. Если нужно изменить этот порядок и сообщить тип данных, то необходимо выбрать пункт меню Запрос ® Параметры.







Сейчас читают про: