
- •Работа с базами данных в субд access
- •Введение
- •Контрольные вопросы
- •1.2. Нормализация отношений в рбд
- •1.3. Типы связей и ключей в рбд
- •Контрольные вопросы
- •2. Создание таблиц и связей в субд access
- •2.1. Создание бд в субд Access
- •2.2. Создание таблиц в режиме Конструктор
- •Контрольные вопросы
- •3. Организация связей между таблицами и заполнение таблиц
- •Контрольные вопросы
- •4. Запросы в субд access
- •4.1. Запрос на выборку данных
- •4. 2. Создание запроса в режиме Конструктор
- •4.3. Запрос с параметром
- •4.4. Итоговые запросы
- •4.5. Запросы с вычисляемым полем
- •Стоимость:[Количество] *[Цена]
- •4.6. Перекрестные запросы
- •4.7. Запрос в Режиме sql
- •Контрольные вопросы
- •5. Формы в субд access
- •5.1. Создание форм на основе Мастера форм
- •5.2. Построение диаграмм
- •5.3. Конструктор форм
- •Контрольные вопросы
- •6. Отчеты в субд access
- •Контрольные вопросы
- •Литература
- •Содержание
4. 2. Создание запроса в режиме Конструктор
Для создания запроса в режиме Конструктор после выбора таблиц для запроса в окне Добавление таблицы щелчком мыши по кнопке Добавить (см. рис. 15) на экране появляется диалоговое окно Запрос на выборку, состоящее из двух частей (см. рис. 16): верхней, где представлены таблицы, на основе которых строится запрос, и нижней, где выбираются поля из таблиц и где, собственно говоря, непосредственно формируется запрос.
Рис. 15. Окно выбора таблиц из БД для запроса
Рис. 16. Окно организации запроса в режиме Конструктор
Для создания запроса необходимо прежде всего из диалогового окна Добавление таблицы выбрать и добавить в верхнюю половину диалогового окна Запрос на выборку те таблицы, из которых будут в дальнейшем выбраны поля для запроса, после чего закрыть диалоговое окно Добавление таблицы.
Нижняя часть диалогового окна Запрос на выборку называется бланком запроса по образцу, иначе QBE-бланком или QBE-областью. При этом количество строк в QBE-бланке может меняться в зависимости от вида запроса. На рис. 16 представлен бланк запроса по образцу QBE, содержащий строки:
Поле – для запрашиваемых полей;
Имя таблицы – для вывода имени таблицы, из которой выбирается поле;
Сортировка – для проведения сортировки по этим полям;
Вывод на экран – для вывода или нет выбранных запросом полей на экран;
Условие отбора – для ввода условий на выбор записей в соответствии с заданными условиями, причем условия по отдельным полям в этой строке соединяются операцией «и» (все условие верно только, если все составляющие его условия верны);
Или – для ввода условий, которые соединяются с условием в вышерасположенной строке Условие отбора по принципу «или» (все условие верно, если хотя бы одно из составляющих его условий верно).
Для создания простого запроса на просмотр таблицы с проведением сортировки ее записей добавьте в диалоговое окно Запрос на выборку таблицу «Товары». Перенесите затем мышью в QBE-область последовательно поля: «Товар», «Количество», «Стоимость», «Описание», «Изображение», «Дата поступления». С помощью раскрывающегося списка в строке QBE-бланка Сортировка для поля "Товар" установите режим сортировки По возрастанию, а для поля «Стоимость» – По убыванию (см. рис. 16).
В построенном варианте запроса записи будут отсортированы в алфавитном порядке по названию товаров, а в пределах каждого товара – в убывающем порядке его стоимости.
Для подавления вывода на экран отдельных полей запроса необходимо в строке QBE-бланка Вывод на экран с помощью мыши произвести сброс флажка (отметка внутри квадрата пропадет). Поскольку данные с типами Поле MEMO и Поле объекта OLE не отображаются в таблицах запросов, то нашем случае вывод этих полей всегда будет подавлен (просмотреть такие поля можно только построив на основе полученного запроса новый объект БД Форма, см. подробнее раздел 5 пособия).
При построении запросов следует также иметь в виду, что Access не проводит сортировку по полям с типами данных Поле MEMO и Поле объекта OLE.
Для выполнения запроса щелкните мышью кнопку Запуск в пиктографическом меню. В результате на экране в виде таблицы отобразится результат запроса. Сохраните запрос под именем «Товары с сортировкой».
Рис. 17. Бланк запроса на выборку с условием и сортировкой
Рис.
18. Окно Построитель
выражений
Составим теперь список контрактов, заключенных с клиентами после 1 марта 2001 года. Для подготовки такого запроса с условием для выборки записей, действуя аналогичным предыдущему случаю образом, выберите в главном окне БД объект Запросы и выполните затем последовательно команды Создать/Конструктор. В окно Запрос на выборку добавьте таблицу «Контракты», перенесите мышью из списка полей выбранной таблицы в область спецификации запроса поля таблицы «Товар», «Количество» и «Дата» в нужной последовательности.
В поле запроса «Товар» задайте режим сортировки. В поле запроса «Дата» в строке Условие отбора задайте отбор по критерию (см. рис. 17).
>1.03.01
Выполните запрос щелчком мыши по кнопке Запуск на панели пиктографического меню. Сохраните запрос под именем «Контракты после 1 марта». Сохраненным запросом можно воспользоваться в любой момент и после внесения изменений и дополнений в исходную таблицу.
В качестве примера отбора данных по более сложному условию рассмотрим запрос на получение сведений о контрактах, заключенных клиентами за определенный промежуток времени, например с 15.03.01 по 23.05.01.
Постройте такой запрос на базе таблицы «Контракты». Включите в запрос поля «Дата», «Товар», «Клиент». Для поля «Дата» задайте режим сортировки По возрастанию и условие отбора:
Between 15.05.01 And 23.05.01
Для создания сложных условий выборки, определяемых сложными выражениями, куда могли бы входить поля существующих в БД таблиц и других объектов, встроенные в Access функции, операторы, константы и т.п., рекомендуется использовать окно Мастера Построитель выражений, которое открывается при нажатии на соответствующую кнопку Построить пиктографического меню главного окна БД (см. рис. 18).
Установите курсор мыши в поле «Дата» строки Условие отбора QBE-бланка запроса, вызовите Построитель выражений и наберите в верхней части его окна требуемое условие, используя имеющиеся кнопки на панели для набора математических операций. Выполните запрос и сохраните его под именем «Контракты за период».