Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Access часть2.doc
Скачиваний:
24
Добавлен:
14.08.2019
Размер:
6.24 Mб
Скачать

7.2. Сознание перекрестного запроса при помощи конструктора запросов

Допустим, необходимо создать запрос по квартальным оборотам за 1997 год по странам размещения заказов и по товарам. Для этого создайте новый запрос, откройте его режиме конструктора и добавьте в его макет таблицы Клиенты, Заказы, Заказано и Товары. В контекстном меню запроса выберите пункт Тип запроса | Перекрестный. Конструктор автоматически изобразит связи, существующие на уровне базы данных. В бланк запроса добавьте поля: Страна из таблицы Клиенты, Марка из таблицы Товары. В определения следующих трех полей введите соответственно строки: "Кв " & DatePart("q"; [ДатаРазмещения]; 1; 0) (для этого поля конструктор автоматически присвоит имя Выражение!, Сумма: ССиr([Заказано].[Цена]*[Количество]*(1-[Скидка])/100)*100 и Yеаr([Дата Размещения]). Для полей Страна и Марка установите свойство Перекрестная таблица в значение Заголовки строк, а свойство Сортировка — по возрастанию. Для поля Выражение1 установите свойство Перекрестная таблица в значение Заголовки столбцов, а для поля Сумма свойство Перекрестная таблица должно быть установлено в Значение и свойство Групповые операции — в Sum. Для последнего поля задайте свойства Групповая операция — Условие, Перекрестная таблица — (не отображается) и Условие отбора 1997. Получившийся запрос изображен на рис. 7.7.

Рис. 7.7. Перекрестный запрос для анализа размещения товаров по странам.

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

Во всех запросах, описанных выше, в качестве значений для условия отбора использовались константы. Например, в качестве интервала отбора часто применялась конструкция типа 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 все равно будет требовать для него ввода значения.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]