
MS Access Запросы
ЗАпросы
Запрос – объект базы данных, предназначенный для обработки данных.
С помощью запросов можно:
отобрать записи, соответствующие заданным условиям;
объединить в виде одной таблицы данные из нескольких таблиц;
выполнить вычисления над значениями полей.
Результат выполнения запроса представляет собой динамический набор данных – временную таблицу. При каждом выполнении запроса этот набор данных формируется заново.
В Microsoft Access 2007 с уществует несколько видов запросов. При создании запроса с помощью Конструктора по умолчанию формируется запрос на выборку.
Запросы на выборку
Запросы на выборку предназначены для отбора записей, соответствующих заданным условиям.
На вкладке Созданиев группеДругиещелкнуть по кнопкеКонструкторзапросов.
На экране появится окно Конструктора, а также окно Добавление таблицы.
Если окно Добавление таблицы не появилось автоматически, надо на вкладке Работа с запросами – Конструктор в группе Настройка запроса щелкнуть по кнопке Отобразить таблицу или в контекстном меню бланка запроса выбрать команду Добавить таблицу.
В окне Добавление таблицывыбрать одну или несколько таблиц или запросов, поля которых будут использованы для построения нового запроса. После добавления всех необходимых таблиц закрыть окно.
Верхняя часть окна Конструктора запросов содержит списки полей таблиц, на основе которых создается запрос.
Нижняя часть представляет собой бланк запроса. Каждый столбец бланка запроса относится к одному полю.
Включить в запрос нужные поля одним из следующих способов:
перетащить мышью нужное поле из списка полей таблицы в верхней части окна Конструктора в строку Поле бланка запроса;
дважды щелкнуть мышью по имени нужного поля в списке полей таблицы;
щелкнуть по кнопке раскрытия списка в строке Поле бланка запроса и выбрать из списка нужное поле.
Если нужно использовать все поля какой-либо таблицы или запроса, можно не выбирать каждое поле по отдельности, а использовать подстановочный знак «*» в списке полей этой таблицы или запроса.
В бланк запроса на выборку включаются поля, которые должны быть выведены на экран, а также поля, по которым определяются условия отбора, и задается порядок сортировки.
Для полей, которые должны выводиться на экран, установить флажок в строке Вывод на экран.
Для полей, по которым надо отсортировать таблицу, щелкнуть мышью по ячейке в строке Сортировкаи выбрать из раскрывшегося списка порядок сортировки. Если условия сортировки заданы по нескольким полям, то сортировка будет выполняться в порядке расположения этих полей слева направо.
Ввести условия отбора. Для ввода условий отбора используются строки Условие отбораиили. Условия, находящиеся в одной строке, связываются логическим операторомИ; условия, находящиеся в разных строках – логическим операторомИЛИ.
Условия отбора состоят из операторов сравнения (<, <=, >, >=, =, <>, Between, In, Like) и констант (например, >#1/1/90#, «Морозильник»). Имена полей в условиях отсутствуют, так как поле, на которое накладывается условие, определяется столбцом, в который это условие вводится.
Сохранить запрос, выбрав команду Сохранитьв меню кнопкиOfficeили щелкнув по кнопкуСохранить на панели быстрого доступа. В открывшемся диалоговом окне ввести имя запроса.
Перед выполнением запроса можно проверить правильность выборки. Для этого надо перейти в режим таблицы: на вкладке Работа с запросами – Конструктор в группе Результаты в меню кнопки Вид выбрать команду Режим таблицы или в контекстном меню бланка запроса выбрать команду Режим таблицы.
Выполнить запрос можно одним из следующих способов;
В режиме Конструктора на вкладке Работа с запросами – Конструктор в группе Результаты щелкнуть по кнопке Выполнить;
в области переходов дважды щелкнуть по имени запроса;
в области переходов в контекстном меню запроса выбрать команду Открыть.
Параметрические запросы
Если необходимо выполнить несколько запросов с разными условиями на значения одного и того же поля, то целесообразно создать параметрический запрос. При запуске такого запроса на экран выводится диалоговое окно, предлагающее пользователю ввести условие отбора.
Для создания параметрического запроса следует в строку Условия отбора в квадратных скобках ввести текст сообщения, который будет выводиться в диалоговом окне (текст должен отличаться от имени поля, но может включать его).
Например, для создания параметрического запроса о заказах на заданный товар надо в строку Условие отбора для поля Наименование товара ввести текст: [Введите название товара]. После запуска запроса на экран будет выведено диалоговое окно, в которое вводится название товара.
Таких параметров может быть несколько.
Запросы с вычисляемыми полями
С помощью запросов можно задать вычисления над данными и сделать вычисляемое значение новым полем в наборе записей. Для создания вычисляемого поля надо в пустую ячейку в строке Поле бланка запроса ввести формулу следующего вида:
Имя поля: выражение
Для построения выражений в Microsoft Access имеется утилита, называемая Построитель выражений.
Чтобы вызвать Построитель выражений, надо поместить курсор в ту ячейку, в которую надо ввести выражение, и на вкладке Работа с запросами – Конструктор в группе Настройка запроса щелкнуть по кнопке Построитель или выбрать команду Построить в контекстном меню ячейки. На экран будет выведено окно Построителя выражений.
В верхней части окна располагается область ввода. Нижняя часть окна содержит три списка для выбора имен полей и функций. В средней части окна расположены кнопки со знаками математических операций.
Чтобы вставить в выражение имя поля, надо:
В первом списке нижней части окна дважды щелкнуть по строке с названием нужного объекта (Таблицы или Запросы). Откроется список таблиц (или запросов) текущей базы данных.
Дважды щелкнуть мышью по имени нужного объекта. Во втором списке появятся имена полей этого объекта.
Во втором списке щелкнуть по имени нужного поля, а затем по кнопке Вставить(или дважды щелкнуть по имени нужного поля).
Чтобы вставить в выражение функцию, надо:
В первом списке нижней части окна дважды щелкнуть по строке Функции, затем – по строкеВстроенные функции.
Выбрать нужный тип функции во втором списке.
Щелкнуть по строке с именем нужной функции в третьем списке, затем – по кнопке Вставить(или дважды щелкнуть по имени нужной функции).
Чтобы вставить в выражение математический оператор, надо щелкнуть мышью по соответствующей кнопке.
Итоговые запросы
Итоговые запросы используются для выполнения вычислений над группами записей.
В итоговом запросе Microsoft Access группирует записи по заданному полю, т. е. объединяет в группу записи, значения которых в заданном поле одинаковы. Результатом итогового запроса будет таблица, в которой каждой группе соответствует одна строка.
Чтобы создать итоговый запрос с группировкой записей по заданному полю и вычислением итоговых значений по некоторым полям в группах, надо:
Перенести в бланк запроса поле, по которому надо произвести группировку записей, а также поля, по которым надо произвести групповые вычисления.
На вкладке Работа с запросами – Конструкторв группеНастройка запроса щелкнуть по кнопкеИтогиили выбрать командуИтоги в контекстном меню нижней панели бланка запроса.
В бланке запроса появится новая строка Групповая операция. По умолчанию для всех полей в этой строке задана установка Группировка.
Для поля, по которому надо сгруппировать записи, оставить установку Группировка. Для полей, в которых надо произвести вычисления, щелкнуть мышью по кнопке раскрытия списка в строкеГрупповая операцияи выбрать из списка нужную функцию.
Выполнить запрос.
Столбцы получившейся таблицы будут содержать поля, заданные в бланке запроса, причем в заголовках столбцов указывается тип вычислений. Каждая строка таблицы будет соответствовать одной группе.
При выполнении групповых операций иногда надо включить в группу не все записи, а только удовлетворяющие заданному условию. В этом случае в строке Групповые операциивыбирается установкаУсловие, а в строкуУсловие отборавводится нужное выражение.MicrosoftAccessсначала отберет удовлетворяющие условию записи, затем сгруппирует их и произведет групповые вычисления.
Перекрестные запросы
Перекрестные запросы – особый вид итоговых запросов, представляющих данные в виде матрицы.
В перекрестном запросе отображаются результаты статистических расчетов, выполненных по данным из одного поля таблицы. Эти результаты группируются по двум наборам данных, один из которых располагается в левом столбце запроса, а второй – в верхней строке.
Для создания перекрестного запроса надо:
Включить в бланк запроса поля, значения которых будут заголовками строк и столбцов, и поле, данные которого используются для статистических расчетов. При необходимости добавить поля, по которым задаются условия отбора записей.
На вкладке Работа с запросами – Конструкторв группеТип запросащелкнуть по кнопкеПерекрестный.
В бланке запроса появятся две дополнительные строки: Групповая операция и Перекрестная таблица.
Для поля, значения которого должны быть представлены в запросе как заголовки строк, в строке Групповая операцияоставить стандартное значениеГруппировка, а в строкеПерекрестная таблицавыбрать значениеЗаголовки строк.
Для поля, значения которого должны быть представлены в запросе как заголовки столбцов, в строке Групповая операцияоставить стандартное значениеГруппировка, а в строкеПерекрестная таблицавыбрать значениеЗаголовки столбцов.
Для поля, значения которого должны быть использованы для расчетов, в строке Перекрестная таблицавыбрать из раскрывающегося списка строкуЗначения, а в строкеГрупповая операция– нужную статистическую функцию.
При необходимости задать условия отбора.
Выполнить запрос.
Запросы-изменения
Кроме запросов-выборок, Microsoft Access позволяет создавать запросы-изменения, предназначенные для изменения данных в существующих таблицах и создания новых таблиц.
Существует четыре типа запросов-изменений:
запрос на создание таблицысоздает новую таблицу, полностью или частично копируя структуру и данные из одной или нескольких таблиц;
запрос на обновление записейизменяет данные в группе записей.
запрос на добавление записейдобавляет группу записей из одной или нескольких таблиц в одну или несколько других таблиц;
запрос на удаление записейудаляет записи из одной или нескольких таблиц;
Поскольку запросы-изменения приводят к необратимым изменениям, целесообразно выполнять их в два этапа. На первом этапе составить запрос на выборку и проверить в режиме таблицы правильность отбора данных. На втором этапе изменить вид запроса и выполнить запрос.
MicrosoftAccess не допускает выполнения запросов на изменение, если база данных находится не в надежном расположении и при этом ей не предоставлено состояние доверенной. Поэтому перед запуском запросов-изменений надо включить содержимое базы данных:
На панели сообщений щелкнуть по кнопке Параметры. Откроется диалоговое окноПараметры Microsoft Office.
Установить переключатель в положение Включить это содержимое.
Если панель сообщений не отображается, на вкладке Работа с базами данных в группе Показать или скрыть установить флажок Панель сообщений.
Запрос на создание новой таблицы
Запрос на создание таблицы получает данные из одной или нескольких таблиц, а затем помещает набор результатов в новую таблицу. Эта новая таблица может располагаться в базе данных, открытой в данный момент, или создается в другой базе данных. Для создания запроса надо:
Создать запрос на выборку, включив в него нужные поля и при необходимости задав условия отбора.
В режиме таблицы проверить правильность выборки.
На вкладке Работа с запросами – Конструкторв группеТип запросащелкнуть по кнопкеСоздание таблицы.
В открывшемся диалоговом окне ввести имя новой таблицы.
Включить содержимое базы данных.
Выполнить запрос.
Запрос на обновление записей
С помощью запроса на обновление можно добавлять, изменять или удалять данные в одной или нескольких записях.
Запрос на обновление нельзя использовать:
для добавления новых записей в таблицу;
для удаления записей целиком из таблицы;
для вычисляемых полей, предусмотрено место постоянного хранения данных, их невозможно обновить;
для полей, источником записей для которых служат итоговые или перекрестные запросы;
для полей с типом данных «Счетчик»;
Для создания запроса на обновление надо:
Создать запрос на выборку, включив в него записи, которые необходимо обновить.
В режиме таблицы проверить правильность выборки.
На вкладке Работа с запросами – Конструкторв группеТип запросащелкнуть по кнопкеОбновление. В бланке запроса появится новая строкаОбновление.
Для полей, которые необходимо изменить, в строку Обновлениеввести выражение или значение, которое должно быть использовано для изменения полей.
Включить содержимое базы данных.
Выполнить запрос.
Запрос на добавление записей
Запрос на добавление записей добавляет записи из одной или нескольких исходных таблиц (или запросов) в одну или несколько результирующих таблиц. Чтобы создать запрос на добавление, надо:
Создать запрос на выборку из таблиц, содержащих записи, которые следует добавить в другую таблицу.
В режиме таблицы проверить правильность выборки.
На вкладке Работа с запросами – Конструкторв группеТип запросащелкнуть по кнопкеДобавление.
В открывшемся диалоговом окне ввести имя таблицы, в которую необходимо добавить записи. В бланке запроса появится новая строка Добавление.
В строку Добавлениеввести имена полей в таблице-получателе, в которые следует ввести данные из соответствующих полей таблицы-источника (если в обеих таблицах поля имеют одинаковые имена, то эти имена автоматически вводятся в строкуДобавление).
Включить содержимое базы данных.
Выполнить запрос.
Запрос на удаление записей
Запрос на удаление удаляет все данные каждого поля записи вместе со значением ключа, который делает эту запись уникальной. При выполнении такого запроса всегда удаляется строка таблицы целиком. Процесс состоит из следующих основных этапов: создание запроса на выборку и проверка, что он возвращает только те данные, которые нужно удалить; преобразование этого запроса в запрос на удаление и выполнение его для удаления данных.
В бланк запроса из списка полей таблицы, из которой следует удалить записи, переместить символ «*», а также добавить поля, по которым следует задать условия отбора.
Задать условия отбора.
В режиме таблицы проверить правильность выборки.
На вкладке Работа с запросами – Конструкторв группеТип запросащелкнуть по кнопке Удаление. В бланке запроса появится строкаУдаление. В этой строке в столбце с символом «*» появится значениеИз, а в столбцах, содержащих условия отбора – значениеУсловие.
Включить содержимое базы данных.
Выполнить запрос.