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

Во всех запросах, описанных выше, в качестве значений для условия отбора использовались константы. Например, в качестве интервала отбора часто применялась конструкция типа Between #01.01.98# And #31.12.98#. Вместо констант #01.01.98# и #31.12.98# в выражениях условий отбора можно использовать переменные (параметры). Параметры представляют собой произвольные текстовые строки (обычно — поясняющий текст), заключенные в квадратные скобки. Вышеприведенное выражение, задающее интервал отбора, можно записать так: Between [Введите начальную дату периода:] And [Введите конечную дату периода:]. При запуске на выполнение запроса, содержащего параметры, на экране отображается диалоговое окно, приглашающее ввести значение параметра (см. рис. 8.1). Введенные пользователем значения подставляются системой в условия отбора (или в определение полей), которые после этого применяются для ограничения числа отбираемых записей.

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

Можно назвать следующие преимущества использования в запросах параметров вместо констант:

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

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

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

Microsoft Access автоматически определяет тип введенных пользователем значений параметра. Однако более разумно самому задать тип данных для каждого из параметров, использующихся в запросе. Для этого служит диалоговое окно Параметры запроса (см. рис. 8.2). Чтобы получить к нему доступ, нужно выбрать из контекстного меню запроса пункт Параметры. В левом столбце таблицы параметров нужно указать имена параметров (например, Введите начальную дату:), а в правом столбце — задать для них тип. Имена параметров не нужно заключать в квадратные скобки, это будет сделано конструктором автоматически.

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

После того, как вы укажете в диалоговом окне Параметры запроса всю необходимую информацию и нажмете кнопку ОК, в SQL-операторе появится новая конструкция, начинающаяся с ключевого слова Parameters (см. рис. 8.3). В этой конструкции перечислены все параметры запроса с указанием их типа данных. Обратите внимание, что после этой конструкции ставится точка с запятой, как и в конце всего SQL-оператора.

Рис. 8.3. Оператор SQL, содержащий конструкцию Parameters.

После удаления какого-нибудь параметра из бланка запроса, не забудьте удалить его и в диалоговом окне Параметры запроса (или в строке SQL-оператора), иначе Microsoft Access все равно будет требовать для него ввода значения.

В остальном поведение запросов с параметрами не отличается от поведения вышеописанных базовых запросов.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



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