Упражнение 13.4. Создание запросов «с параметром»
Выше мы рассмотрели, как действует условие отбора, но должны отметить его существенный недостаток. Пользователь базы данных работает с запросами, которые ему подготовил разработчик. Если, например, разработчик предусмотрел запрос, отбирающий изделия, имеющие цену менее 150 условных единиц, то пользователь базы уже не в состоянии отобрать изделия, цена которых менее 140 условных единиц, поскольку у него нет соответствующего запроса.
Специальный тип запросов, называемый запросами «с параметром», позволяет пользователю самому ввести критерий отбора данных на этапе запуска запроса. Этим приемом обеспечивается гибкость работы с базой.
Создадим простой запрос, позволяющий отбирать процессоры, предельную цену которых пользователь может задать сам при запуске запроса.
1.Запустите программу Microsoft Access 2000 (Пуск > Программы > Microsoft Access).
2. В окне Microsoft Access включите переключатель Открыть базу данных, выберите ранее созданную базу Комплектующие и щелкните на кнопке ОК.
3. В окне Комплектующие: база данных откройте панель Запросы. Дважды щелкните на значке Создание запроса в режиме Конструктора — откроется бланк запроса по образцу.
4. Согласно упражнению 13.3, создайте запрос на выборку, основанный на таблице Поставщики, в который войдут следующие поля:
• Компонент;
• Модель;
• Цена оптовая;
• Поставщик;
• Телефон;
5. В строке Условие отбора поля Компонент введите: Процессор.
6. Строку Условие отбора для поля Цена оптовая надо заполнить таким образом, чтобы при запуске запроса пользователь получал предложение ввести нужное значение.
Текст, обращенный к пользователю, должен быть заключен в квадратные скобки. Если бы мы хотели отобрать процессоры, цена которых больше 100 единиц, мы бы написали: >100. Если бы нам были нужны процессоры дешевле 80 единиц, мы бы написали <80. Но если мы хотим дать пользователю возможность выбора, мы должны написать: < [Введите максимальную цену].
7. Закройте запрос. При закрытии сохраните его под именем Выбор комплектующих.
8. В окне Комплектующие: база данных откройте панель Запросы и запустите запрос Выбор комплектующих — на экране появится диалоговое окно Введите значение параметра (рис. 13.19).
9. Введите какое-либо число и щелкните на кнопке ОК. В зависимости от того, что реально содержится в таблице Поставщики, по результатам запроса будет сформирована результирующая таблица.
10. Закройте все объекты базы данных. Закройте программу Microsoft Access.
Мы научились формировать запросы «с параметром» и узнали, что в основе этого вида запросов лежат запросы на выборку, у которых в поле Условие отбора записан заключенный в квадратные скобки текст, обращенный к пользователю.
Рис. 13.19. Пользователь вводит значение параметра для условия отбора
Упражнение 13.5. Создание итогового запроса
Если полностью заполнить данными таблицу Комплектующие, введя параметры всех компонентов, входящих в сборочную спецификацию Персонального компьютера, то можно узнать, во что обходится себестоимость комплектующих узлов. Запросы, выполняющие вычисления по всем записям для какого-либо числового поля, называются итоговыми запросами. В итоговом запросе может рассчитываться сумма значений или величина среднего значения по всем ячейкам поля, может выбираться максимальное или минимальное значение данных в поле, может также исполняться иная итоговая функция. Итоговые запросы, как и запросы на выборку, готовятся с помощью бланка запроса по образцу.
Предположим, что малое предприятие собирает компьютеры трех классов: «Элитный», «Деловой» и «Экономичный». Несмотря на то что архитектура у всех компьютеров близка, их компоненты заметно отличаются по цене и техническим параметрам. Соответственно, имеются значительные отличия в цене этих трех моделей, что важно для захвата разных секторов рынка. Наша задача — подготовить итоговый отчет, с помощью которого можно определять цену каждой из модели компьютеров и динамично ее отслеживать при изменении входящих компонентов или их поставщиков.
1. Запустите программу Microsoft Access 2000 (Пуск > Программы > Microsoft Access).
2. В окне Microsoft Access включите переключатель Открыть базу данных, выберите ранее созданную базу Комплектующие и щелкните на кнопке ОК.
3. В окне Комплектующие: база данных откройте панель Таблицы. Выберите таблицу Комплектующие.
4. Щелчком на значке Конструктор откройте таблицу в режиме проектирования — нам это необходимо для создания дополнительного поля Класс, в котором будут храниться данные о том, для какого класса изделий предназначены компоненты.
5. В начало структуры таблицы вставьте новое поле. Для этого выделите первое поле (Компонент) и нажмите клавишу INSERT.
6. Введите имя нового поля — Класс и определите его тип — Текстовый.
7. Закройте окно Конструктора. При закрытии подтвердите необходимость изменить структуру таблицы.
8. Откройте таблицу Комплектующие и наполните ее содержанием, введя для каждого класса данные по следующим изделиям:
• Материнская плата;
• Процессор;
• Оперативная память;
• Жесткий диск;
• Корпус;
• Дисковод CD-ROM;
• Дисковод гибких дисков;
• Видеоадаптер;
• Звуковая карта;
• Клавиатура;
• Мышь.
Цены на эти изделия для каждого класса проставьте произвольно. Прочие поля таблицы можно не заполнять — в формировании итогового запроса они участвовать не будут.
9. Закройте таблицу Комплектующие.
10.Откройте панель Запросы щелчком на одноименной кнопке окна Комплектующие: база данных.
11.Выполните двойной щелчок на значке Создание запроса в режиме конструктора. В открывшемся диалоговом окне Добавление таблицы выберите таблицу Комплектующие, на основе которой будет разрабатываться итоговый запрос. Закройте окно Добавление таблицы.
12.В бланк запроса по образцу введите следующие поля таблицы Комплектующие: Класс, Компонент, Цена.
13.Для поля Класс включите сортировку по возрастанию. Включите также сортировку по полю Цена, но на этот раз — по убыванию.
14.На панели инструментов Microsoft Access щелкните на кнопке Групповые операции или воспользуйтесь строкой меню (Вид > Групповые операции).
Эта команда необходима для создания в нижней части бланка строки Групповые операции. Именно на ее базе и создаются итоговые вычисления. Все поля, отобранные для запроса, получают в этой строке значение Группировка.
15.Для поля, по которому производится группировка записей (в нашем случае — Класс), оставьте в строке Групповые операции значение Группировка. Для остальных полей щелкните в этой строке — появится кнопка раскрывающегося списка, из которого можно выбрать итоговую функцию для расчета значений в данном поле.
16.Для поля Цена выберите итоговую функцию Sum для определения стоимости изделия как суммы стоимостей комплектующих.
17.Для поля Компонент выберите итоговую функцию Count, определяющую общее количество записей, вошедших в группу. В нашем случае это количество узлов, из которых собран компьютер.
18.Закройте бланк запроса по образцу и дайте ему имя: Расчет стоимости изделия. Запустите запрос и убедитесь, что он правильно работает.
19.Закройте все объекты базы данных. Завершите работу с программой Microsoft Access.
Мы научились создавать так называемые итоговые запросы. Это запросы, производящие вычисления по всем значениям одного поля. Мы научились также выбирать используемую итоговую функцию.
Дата добавления: 2016-09-26; просмотров: 1735;