Опубликован: 30.10.2006 | Уровень: для всех | Доступ: платный
Лекция 8:

Создание запроса

< Лекция 7 || Лекция 8: 1234
Аннотация: Изучив эту лекцию, вы сможете: создавать запросы, извлекающие данные из одной или нескольких таблиц; создавать запросы, выполняющие вычисления.

Создание запроса в режиме конструктора

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

  • Запрос на выборку извлекает данные из одной или нескольких таблиц и представляет их в табличном виде. Этот тип запроса можно использовать для группировки записей, вычисления сумм, средних величин и других итоговых значений. Работая с результатами запроса, можно одновременно редактировать данные из нескольких таблиц.
  • Параметрический запрос запрашивает ввод параметров (например, начальную и конечную дату). Этот тип запросов часто используется для получения отчетов за определенный период времени.
  • Перекрестный запрос выполняет расчеты и группирует данные для анализа информации. Для элементов, расположенных в левом столбце и в верхней строке результатов запроса, могут вычисляться итоговые значения (сумма, количество или средняя величина). Ячейки на пересечении строк и столбцов также содержат вычисляемые значения.
  • Запрос на действие вносит множественные изменения за одну операцию. Собственно, это запрос на выборку, который выполняет определенные действия над результатами отбора. Возможны четыре типа действий: обновление, удаление и добавление записей и создание таблицы. В двух последних случаях результаты запроса на выборку либо добавляются в существующую таблицу, либо для них создается новая таблица.
Совет. Access включает также запросы SQL, но в этом курсе они не рассматриваются.

Фильтры, сортировка и запросы

Основные различия между применением фильтрации и сортировки и использованием запросов состоят в следующем:

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

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

GardenCo

В этом упражнении вы создадите форму для ввода заказов, полученных по телефону. Форма базируется на запросе, содержащем сведения из таблиц Сведения о заказе и Товары. Запрос создает таблицу, в которой перечислены все товары с указанием их цен, количества, скидок и стоимости покупки. Поскольку стоимость не хранится в базе данных, ее нужно вычислить прямо в запросе. В качестве рабочей будет использоваться папка Office XP SBS\Access\Chap12\QueryDes. Выполните следующие шаги.

  1. Откройте базу данных GardenCo, расположенную в рабочей папке.
  2. На панели объектов щелкните на Запросы (Queries).
  3. Щелкните дважды на команде Создание запроса в режиме конструктора (Create query in Design View). Откроется окно запроса и диалоговое окно Добавление таблицы (Show Table), как показано на следующем рисунке.
    Воспользуйтесь диалоговым окном Добавление таблицы (Show Table), чтобы указать таблицы и запросы, которые нужно включить в данный запрос.
  4. На активной вкладке Таблицы (Tables) щелкните дважды на таблицах Сведения о заказе и Товары, чтобы добавить их в окно запроса, и закройте диалоговое окно Добавление таблицы (Show Table).

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


    Вверху каждого списка полей имеется звездочка, представляющая все поля таблицы. Ключевое поле отображается полужирным шрифтом. Линия, соединяющая поля КодТовара в обеих таблицах, указывает, что эти поля связаны.
    Совет. Чтобы добавить в запрос дополнительные таблицы, откройте диалоговое окно Добавление таблицы (Show Table). Для этого щелкните правой кнопкой мыши в верхней части окна запроса и воспользуйтесь командой Добавить таблицу (Show Table) в контекстном меню или щелкните на кнопке Отобразить таблицу (Show Table) на панели инструментов.
    Нижняя часть окна запроса занята бланком, предназначенным для построения условий отбора.
  5. Чтобы включить поля в запрос, нужно перетащить их из списков вверху окна в последовательные столбцы бланка запроса. Перетащите следующие поля:
    Из таблицы Поле
    Сведения о заказе КодЗаказа
    Товары ОписаниеТовара
    Сведения о заказе Цена
    Сведения о заказе Количество
    Сведения о заказе Скидка
    Совет. Щелкнув дважды на поле, можно скопировать его в свободный столбец бланка. Чтобы скопировать сразу все поля таблицы, выделите нужный список (щелкнув дважды на его заголовке), а затем перетащите выделенный объект на бланк запроса. Когда вы отпустите кнопку мыши, все поля разместятся в последовательных столбцах бланка. Можно включить все поля таблицы в один столбец бланка, перетащив в него звездочку. Однако если требуется задать условия сортировки или отбора для определенных полей, нужно перетащить каждое из них в отдельный столбец.
    Окно запроса должно выглядеть, как показано на следующем рисунке.
< Лекция 7 || Лекция 8: 1234
Ксения Кострова
Ксения Кострова
Татьяна Романова
Татьяна Романова

Подскажите, пожалуйста, можно ли как-то в базе, состоящей из достаточно большого количества таблиц, определить те ячейки, которым присвоено значение "null". При обновлении базы постоянно всплывает ошибка, что 7ми полям присвоено данное значение. А как найти и "обезвредить" не могу разобраться. Заранее спасибо

 

Рустам Бейбутов
Рустам Бейбутов
Азербайджан, Баку
Елена Лаевская
Елена Лаевская
Россия