Как составить запрос на выборку в access

Если вам нужно выбрать определенные данные из одного или нескольких источников, можно воспользоваться запросом на выборку. Запрос на выборку позволяет получить только необходимые сведения, а также помогает объединять информацию из нескольких источников. В качестве источников данных для запросов на выборку можно использовать таблицы и другие такие же запросы. В этом разделе вкратце рассматриваются запросы на выборку и предлагаются пошаговые инструкции по их созданию с помощью Мастера запросов либо в Конструктор.

Если вы хотите узнать больше о принципах работы запросов на примере базы данных Northwind, ознакомьтесь со статьей Общие сведения о запросах.

В этой статье

  • Overview

  • Создание запроса SELECT с помощью мастера запросов

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

Общие сведения

Когда возникает потребность в каких-то данных, редко бывает необходимо все содержимое одной таблицы. Например, если вам нужна информация из таблицы контактов, как правило, речь идет о конкретной записи или только о номере телефона. Иногда бывает необходимо объединить данные сразу из нескольких таблиц, например совместить информацию о клиентах со сведениями о заказчиках. Для выбора необходимых данных используются запросы на выборку.

Запрос на выборки — это объект базы данных, в который в Режим таблицы. Запрос не хранит данные, а отображает данные, хранимые в таблицах. Запрос может показывать данные из одной или нескольких таблиц, из других запросов или из их сочетания.

Преимущества запросов

Запрос позволяет выполнять перечисленные ниже задачи.

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

    Примечание: Запрос только возвращает данные, но не сохраняет их. При сохранении запроса вы не сохраняете копию соответствующих данных.

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

  • Использовать выражения в качестве полей. Например, в роли поля может выступить функция, возвращающая дату, а с помощью функции форматирования можно управлять форматом значений из полей в результатах запроса.

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

Основные этапы создания запроса на выборку

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

  1. Выберите таблицы или запросы, которые хотите использовать в качестве источников данных.

  2. Укажите поля из источников данных, которые хотите включить в результаты.

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

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

Создание запроса на выборку с помощью мастера запросов

Мастер позволяет автоматически создать запрос на выборку. При использовании мастера вы не полностью контролируете все детали процесса, однако таким способом запрос обычно создается быстрее. Кроме того, мастер иногда обнаруживает в запросе простые ошибки и предлагает выбрать другое действие.

Подготовка

Если вы используете поля из источников данных, которые не связаны между собой, мастер запросов предлагает создать между ними отношения. Он откроет окно отношений, однако если вы внесете какие-то изменения, то вам потребуется перезапустить мастер. Таким образом, перед запуском мастера имеет смысл сразу создать все отношения, которые потребуются вашему запросу.

Дополнительную информацию о создании отношений между таблицами можно найти в статье Руководство по связям между таблицами.

Использование мастера запросов

  1. На вкладке Создание в группе Запросы нажмите кнопку Мастер запросов

    В группе "Запросы" на ленте Access есть два параметра: мастер запросов и конструктор

  2. В диалоговом окне Новый запрос выберите пункт Простой запрос и нажмите кнопку ОК.

  3. Теперь добавьте поля. Вы можете добавить до 255 полей из 32 таблиц или запросов.

    Для каждого поля выполните два указанных ниже действия.

    1. В разделе Таблицы и запросы щелкните таблицу или запрос, содержащие поле.

    2. В разделе Доступные поля дважды щелкните поле, чтобы добавить его в список Выбранные поля. Если вы хотите добавить в запрос все поля, нажмите кнопку с двумя стрелками вправо (>>).

    3. Добавив в запрос все необходимые поля, нажмите кнопку Далее.

      В диалоговом окне простого мастера запросов выберите нужные поля.

  4. Если вы не добавили ни одного числового поля (поля, содержащего числовые данные), перейдите к действию 9. При добавлении числового поля вам потребуется выбрать, что именно вернет запрос: подробности или итоговые данные.

    Выполните одно из указанных ниже действий.

    1. Если вы хотите просмотреть отдельные записи, выберите пункт подробный и нажмите кнопку Далее. Перейдите к действию 9.

    2. Если вам нужны итоговые числовые данные, например средние значения, выберите пункт итоговый и нажмите кнопку Итоги.

      В диалоговом окне простого мастера запросов выберите "подробный" или "итоговый".

  5. В диалоговом окне Итоги укажите необходимые поля и типы итоговых данных. В списке будут доступны только числовые поля.

    Для каждого числового поля выберите одну из перечисленных ниже функций.

    1. Sum    — запрос вернет сумму всех значений, указанных в поле.

    2. Avg    — запрос вернет среднее значение поля.

    3. Min    — запрос вернет минимальное значение, указанное в поле.

    4. Max    — запрос вернет максимальное значение, указанное в поле.

    Выберите способ расчета итоговых значений в диалоговом окне "Итоги".

  6. Если вы хотите, чтобы в результатах запроса отобразилось число записей в источнике данных, установите соответствующий флажок Подсчет числа записей в (название источника данных).

  7. Нажмите ОК, чтобы закрыть диалоговое окно Итоги.

  8. Если вы не добавили в запрос ни одного поля даты и времени, перейдите к действию 9. Если вы добавили в запрос поля даты и времени, мастер запросов предложит вам выбрать способ группировки значений даты. Предположим, вы добавили в запрос числовое поле (“Цена”) и поле даты и времени (“Время_транзакции”), а затем в диалоговом окне Итоги указали, что хотите отобразить среднее значение по числовому полю “Цена”. Поскольку вы добавили поле даты и времени, вы можете подсчитать итоговые величины для каждого уникального значения даты и времени, например для каждого месяца, квартала или года.

    Выберите способ группировки дат в запросе в диалоговом окне простого мастера запросов.

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

    Примечание: В режиме конструктора для группировки значений по периодам можно использовать выражения, однако в мастере доступны только указанные здесь варианты.

  9. На последней странице мастера задайте название запроса, укажите, хотите ли вы открыть или изменить его, и нажмите кнопку Готово.

    Если вы решили открыть запрос, он отобразит выбранные данные в режиме таблицы. Если вы решили изменить запрос, он откроется в режиме конструктора.

К началу страницы

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

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

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

  • Действие 1. Добавьте источники данных

  • Действие 2. Соедините связанные источники данных

  • Действие 3. Добавьте выводимые поля

  • Действие 4. Укажите условия

  • Действие 5. Рассчитайте итоговые значения

  • Действие 6. Просмотрите результаты

Действие 1. Добавьте источники данных

При использовании конструктора для добавления источников данных их источники и поля добавляются в отдельных шагах. Однако вы всегда можете добавить дополнительные источники позже.

  1. На вкладке Создание в группе Другое нажмите кнопку Конструктор запросов

    В группе "Запросы" на ленте Access есть два параметра: мастер запросов и конструктор

  2. Дважды щелкните каждый источник данных, который вы хотите использовать, или выберите каждый из них, а затем нажмите кнопку “Добавить”.

    Диалоговое окно для добавления таблицы в Access, в котором показаны названия таблиц

Автоматическое соединение

Если между добавляемыми источниками данных уже заданы отношения, они автоматически добавляются в запрос в качестве соединений. Соединения определяют, как именно следует объединять данные из связанных источников. Access также автоматически создает соединение между двумя таблицами, если они содержат поля с совместимыми типами данных и одно из них — первичный ключ.

Вы можете настроить соединения, добавленные приложением Access. Access выбирает тип создаваемого соединения на основе отношения, которое ему соответствует. Если Access создает соединение, но для него не определено отношение, Access добавляет внутреннее соединение.

Если приложение Access при добавлении источников данных автоматически создало соединения правильных типов, вы можете перейти к действию 3 (добавление выводимых полей).

Повторное использование одного источника данных

В некоторых случаях необходимо соединить две копии одной и той же таблицы или запроса, называемые запросом самосоединение, которые объединяют записи из одной таблицы при совпадении значений в соединитьые поля. Например, допустим, что у вас есть таблица “Сотрудники”, в которой в поле “ОтчетЫВ” для записи каждого сотрудника вместо имени отображается его имя руководителя. Вместо этого вы можете самостоятельно отобразить имя руководителя в записях каждого сотрудника.

При добавлении источника данных во второй раз Access присвоит имени второго экземпляра окончание “_1”. Например, при повторном добавлении таблицы “Сотрудники” ее второй экземпляр будет называться “Сотрудники_1”.

Действие 2. Соедините связанные источники данных

Если у источников данных, которые вы добавляете в запрос, уже есть связи, Access автоматически создает внутреннее присоединение для каждой связи. Если целостность данных, access также отображает “1” над линией связи, чтобы показать, какая таблица находится на стороне “один” отношение “один-ко-многим”, и символ бесконечности(∞),чтобы показать, какая таблица находится на стороне “многие”.

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

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

Добавление соединения

  • Чтобы создать соединение, перетащите поле из одного источника данных в соответствующее поле в другом источнике.

    Access добавит линию между двумя полями, чтобы показать, что они соединены.

    Линия связи в конструкторе запроса

Изменение соединения

  1. Дважды щелкните соединение, которое требуется изменить.

    Откроется диалоговое окно Параметры соединения.

    Диалоговое окно "Параметры объединения"

  2. Ознакомьтесь с тремя вариантами в диалоговом окне Параметры соединения.

  3. Выберите нужный вариант и нажмите кнопку ОК.

После создания соединений можно добавить выводимые поля: они будут содержать данные, которые должны отображаться в результатах.

Действие 3. Добавьте выводимые поля

Вы можете легко добавить поле из любого источника данных, добавленного в действии 1.

  • Для этого перетащите поле из источника в верхней области окна конструктора запросов вниз в строку Поле бланка запроса (в нижней части окна конструктора).

    При добавлении поля таким образом Access автоматически заполняет строку Таблица в таблице конструктора в соответствии с источником данных поля.

    Совет: Чтобы быстро добавить все поля в строку “Поле” бланка запроса, дважды щелкните имя таблицы или запроса в верхней области, чтобы выделить все поля в нем, а затем перетащите их все сразу вниз на бланк.

Использование выражения в качестве выводимого поля

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

  1. В пустом столбце таблицы запроса щелкните строку Поле правой кнопкой мыши и выберите в контекстном меню пункт Масштаб.

  2. В поле Масштаб введите или вставьте необходимое выражение. Перед выражением введите имя, которое хотите использовать для результата выражения, а после него — двоеточие. Например, чтобы обозначить результат выражения как “Последнее обновление”, введите перед ним фразу Последнее обновление:.

    Примечание: С помощью выражений можно выполнять самые разные задачи. Их подробное рассмотрение выходит за рамки этой статьи. Дополнительные сведения о создании выражений см. в статье Создание выражений.

Действие 4. Укажите условия

Этот этап является необязательным.

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

Определение условий для выводимого поля

  1. В таблице конструктора запросов в строке Условие отбора поля, значения в котором вы хотите отфильтровать, введите выражение, которому должны удовлетворять значения в поле для включения в результат. Например, чтобы включить в запрос только записи, в которых в поле “Город” указано “Рязань”, введите Рязань в строке Условие отбора под этим полем.

    Различные примеры выражений условий для запросов можно найти в статье Примеры условий запроса.

  2. Укажите альтернативные условия в строке или под строкой Условие отбора.

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

Условия для нескольких полей

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

Настройка условий на основе поля, которое не включается в вывод

Вы можете добавить в запрос поле, но не включать его значения в выводимые результаты. Это позволяет использовать содержимое поля для ограничения результатов, но при этом не отображать его.

  1. Добавьте поле в таблицу запроса.

  2. Снимите для него флажок в строке Показывать.

  3. Задайте условия, как для выводимого поля.

Действие 5. Рассчитайте итоговые значения

Этот этап является необязательным.

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

Для расчета итоговых значений в запросе используется строка Итого. По умолчанию строка Итого не отображается в режиме конструктора.

  1. Когда запрос открыт в конструкторе, на вкладке “Конструктор” в группе “Показать или скрыть” нажмите кнопку Итоги.

    Access отобразит строку Итого на бланке запроса.

  2. Для каждого необходимого поля в строке Итого выберите нужную функцию. Набор доступных функций зависит от типа данных в поле.

    Дополнительные сведения о функциях строки “Итого” в запросах см. в статье Суммирование или подсчет значений в таблице с помощью строки “Итого”.

Действие 6. Просмотрите результаты

Чтобы увидеть результаты запроса, на вкладке “Конструктор” нажмите кнопку Выполнить. Access отобразит результаты запроса в режиме таблицы.

Чтобы вернуться в режим конструктора и внести в запрос изменения, щелкните Главная > Вид > Конструктор.

Настраивайте поля, выражения или условия и повторно выполняйте запрос, пока он не будет возвращать нужные данные.

К началу страницы

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

Конструирование запросов на выборку с условиями отбора

Рассмотрим запросы на выборку в Access на примере получения информации из таблицы ТОВАР базы данных Поставка товаров.

Задача 1. Пусть необходимо выбрать ряд характеристик товара по его наименованию.

  1. Для создания запроса в окне базы данных выберите вкладку ленты — Создание (Create) и в группе Запросы (Queries) нажмите кнопку Конструктор запросов (Query Design). Откроется пустое окно запроса на выборку в режиме конструктора — ЗапросN (QueryN) и диалоговое окно Добавление таблицы (Show Table) (рис. 4.2).
  2. В окне Добавление таблицы (Show Table) выберите таблицу ТОВАР и нажмите кнопку Добавить (Add). Выбранная таблица будет отображена в области схемы данных запроса. Закройте окно Добавление таблицы (Show Table), нажав кнопку Закрыть (Close).

В результате выполненных действий в окне конструктора запросов (рис. 4.1) в верхней панели появится схема данных запроса, которая включает выбранные для данного запроса таблицы. В данном случае одну таблицу ТОВАР. Таблица представлена списком полей. Первая строка в списке полей таблицы, отмеченная звездочкой (*), обозначает все множество полей таблицы. Нижняя панель является бланком запроса, который нужно заполнить.

Запросы в Access

Кроме того, на ленте появляется и автоматически активизируется новая вкладка Работа с запросами | Конструктор (Query Tools | Design) (на рис. 4.3 представлена на часть этой вкладки), на которой цветом выделен тип созданного запроса — Выборка (Select). Таким образом, по умолчанию всегда создается запрос на выборку. Команды этой вкладки представляют инструментарий для выполнения необходимых действий при создании запроса. Эта вкладка открывается, когда в режиме конструктора создается новый запрос или редактируется существующий.

Запросы на выборку в Access

  1. Для удаления любой таблицы из схемы данных запроса установите на нее курсор мыши и нажмите клавишу <Delete>. Для добавления ― нажмите кнопку Отобразить таблицу ( Show Table) в группе Настройка запроса (Query Setup) на вкладке Работа с запросами | Конструктор (Query Tools | Design) или выполните команду Добавить таблицу (Show Table) в контекстном меню, вызываемом на схеме данных запроса.
  2. В окне конструктора (рис. 4.4) последовательно перетащите из списка полей таблицы ТОВАР поля НАИМ_ТОВ, ЦЕНА, НАЛИЧИЕ_ТОВ в столбцы бланка запроса в строку Поле (Field).
  3. Для включения нужных полей из таблицы в соответствующие столбцы запроса можно воспользоваться следующими приемами:
    • в первой строке бланка запроса Поле (Field) щелчком мыши вызвать появление кнопки списка и выбрать из списка нужное поле. Список содержит поля таблиц, представленных в схеме данных запроса;
    • дважды щелкнуть на имени поля таблицы в схеме данных запроса;
    • для включения всех полей таблицы можно перетащить или дважды щелкнуть на символе * (звездочка) в списке полей таблицы в схеме данных запроса.
  4. Если вы по ошибке перетащили в бланке запроса ненужное поле, удалите его. Для этого переместите курсор в область маркировки столбца сверху, где он примет вид черной стрелки, направленной вниз, и щелкните кнопкой мыши. Столбец выделится. Нажмите клавишу <Delete> или выполните команду Удалить столбцы (Delete Columns) в группе Настройка запроса (Query Setup).
  5. В строке Вывод на экран (Show) отметьте поля, иначе они не будут включены в таблицу запроса.
  6. Запишите в строке Условия отбора (Criteria) наименование товара, как показа-но в бланке запроса на рис. 4.4. Так как выражение в условии отбора не содержит оператора, то по умолчанию используется оператор =. Используемое в выражении текстовое значение вводится в двойных кавычках, которые добавляются автоматически.
  7. Выполните запрос, щелкнув на кнопке Выполнить (Run) или на кнопке Режим (View) в группе Результаты (Results). На экране появится окно запроса в режиме таблицы с записью из таблицы ТОВАР, отвечающей заданным условиям отбора.

Запросы на выборку в Access

ЗАМЕЧАНИЕ
Окно запроса в режиме таблицы аналогично окну просмотра таблицы базы данных. Через некоторые таблицы запроса может производиться изменение данных базовой таблицы, лежащей в основе запроса. Запрос, просматриваемый в режиме таблицы, в отличие от таблицы базы данных Access 2010, не имеет столбца Щелкнуть для добавления (Click to Add), предназначенного для изменения структуры таблицы. В этом режиме на вкладке ленты Главная (Home) доступны те же кнопки, что и при открытии таблицы базы данных.

  1. Если при вводе сложного наименования товара вы допустили неточность, товар не будет найден в таблице. Использование операторов шаблона — звездочка (*) и вопросительный знак (?) (стандарт ANSI-89, используемый для запросов по умолчанию) или знак процента (%) и подчеркивания (_) (ANSI-92, рекомендуемый как стандарт для SQL Server), упрощает поиск нужных строк и позволяет избежать многих ошибок. Введите вместо полного имени товара Корпус* или Корпус%. Выполните запрос. Если в поле наименования товара одно значение начинается со слова «Корпус», результат выполнения запроса будет таким же, как в предыдущем случае. После выполнения запроса введенное выражение будет дополнено оператором Like «Корпус*». Этот оператор позволяет использовать символы шаблона при поиске в текстовых полях.
  2. Если необходимо найти несколько товаров, используйте оператор In. Он позволяет выполнить проверку на равенство любому значению из списка, который задается в круглых скобках. Запишите в строке условий отбора In («Корпуc MiniTower»;»HDD Maxtor 20GB»;»FDD 3,5″). В таблице запроса будет выведено три строки. В операторе In не допускается использование символов шаблона.
  3. Сохраните запрос, щелкнув на вкладке Файл (File) и выполнив команду Сохранить (Save). В окне Сохранение (Save As) введите имя запроса Пример1. Заметим, что имя запроса не должно совпадать не только с именами имеющихся запросов, но и с именами таблиц в базе данных.
  4. Закройте текущий запрос по команде контекстного меню Закрыть (Close) или нажав кнопку окна запроса Закрыть (Close).
  5. Выполните сохраненный запрос, выделив запрос в области навигации и выбрав в контекстном меню команду Открыть (Open).
  6. Для редактирования запроса выделите его в области навигации и выполните в контекстном меню команду Конструктор (Design View).

Задача 2. Пусть надо выбрать товары, цена которых не более 1000 руб., и НДС не более 10%, а также выбрать товары, цена которых более 2500 руб. Результат должен содержать наименование товара (НАИМ_ТОВ), его цену (ЦЕНА) и НДС (СТАВКА_НДС).

  1. Создайте новый запрос в режиме конструктора, добавьте таблицу ТОВАР. В окне конструктора (рис. 4.5) последовательно перетащите из списка полей таблицы ТОВАР в бланк запроса поля НАИМ_ТОВ, ЦЕНА, СТАВКА_НДС.
  2. Запишите Условия отбора (Criteria), как показано в бланке запроса на рис. 4.5. Между условиями, записанными в одной строке, выполняется логическая операция AND. Между условиями, записанными в разных строках, выполняется логическая операция OR.
  3. Выполните запрос, щелкните на кнопке Выполнить (Run) в группе Результаты (Results). На экране появится окно запроса в режиме таблицы с записями из таблицы ТОВАР, отвечающими заданным условиям отбора.
  4. Сохраните запрос, выполнив соответствующую команду в контекстном меню запроса, которое вызывается при установке курсора на заголовок запроса. Дайте ему имя Пример2.

Запросы на выборку в Access

Задача 3. Пусть надо выбрать все накладные за заданный период. Результат должен содержать номер накладной (НОМ_НАК), код склада (КОД_СК), дату отгрузки (ДАТА_ОТГР) и общую стоимость отгруженного товара (СУММА_НАКЛ).

  1. Создайте новый запрос в режиме конструктора, добавьте таблицу НАКЛАДНАЯ. В окне конструктора последовательно перетащите из списка полей таблицы НАКЛАДНАЯ в бланк запроса все необходимые поля.
  2. Для поля ДАТА_ОТГР в строке Условия отбора (Criteria) запишите Between #11.01.2008# And #31.03.2008#. Оператор Between задает интервал дат (в ANSI-92 вместо знака # используются одинарные кавычки ‘). Кроме того, этот оператор позволяет задать интервал для числового значения.

Для закрепления смотрим видеоурок:

Вычисляемые поля в запросах Access далее.

 

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

Запрос — объект БД, который используется для реализации эффективного поиска и обработки данных.

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

Самый распространенный вид запросов — запрос на выборку. Он предназначен для отбора данных из источника в соответствии с некоторым условием. Условие запроса — это выражение, которое СУБД сравнивает со значениями в полях запроса, чтобы определить, следует ли включать в результат записи, содержащие то или иное значение.

Запрос на выборку позволяет:

1. Просматривать значения только из полей, которые вас интересуют.
2. Просматривать записи, которые отвечают указанным вами условиям.
3. Использовать выражения в качестве полей.

По особенностям действия среди запросов на выборку можно выделить простые запросы, групповые запросы и запросы с вычисляемым полем.

Основные режимы работы с запросами в Access:

1. Режим таблицы. Отображает информацию запроса на выборку в режиме таблицы.

2. Конструктор. В этом режиме определяется структура запроса и условия выбора данных (см. Приложение к главе 1).

(Рассмотрите пример 5.1.)

Создать запрос можно с помощью Мастера запросов либо в Конструкторе (пример 5.2).

Мастер запросов позволяет автоматически создавать запросы на выборку. Однако при использовании мастера не всегда можно контролировать процесс создания запроса, но таким способом запрос создается быстрее. Необходимо просто выполнить последовательность действий, предлагаемых мастером на каждом этапе (пример 5.3).

Основные этапы создания запроса на выборку:

1. Выбор инструмента создания запроса.
2. Определение вида запроса.
3. Выбор источника(ов) данных.
4. Добавление из источника(ов) данных полей, которые должен содержать запрос.
5. Определение условий, которые формируют набор записей в запросе.
6. Добавление группировки, сортировки и вычислений (может отсутствовать).

Действие простых запросов на выборку ограничивается отбором данных по некоторым условиям без их обработки.

Примеры записи условий в запросах:

Условие

Действие в запросе

Поля с числовым типом данных

>0 And <8

Выбираются записи, у которых значение в этом поле больше 0 и меньше 8.

Not 0

Выбираются записи, у которых значение в этом поле не равно 0.

Поля с текстовым типом данных

“Орша”

Если значение в поле записи равно Орша, то запись включается в результат запроса.

“*к”

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

Правила записи условий для поля с типом данных Дата и время такие же, как для поля с числовым типом данных. После выполнения запроса в этом случае в условие будут добавлены знаки #.

Если необходимо найти несколько значений полей, можно использовать оператор In. Этот оператор позволяет выполнить проверку на равенство любому значению из списка, который задается в круглых скобках.

Если требуется использование нескольких условий для разных полей, необходимо учитывать, что между условиями, записанными в одной строке, выполняется логическая операция And, а между условиями, записанными в разных строках, выполняется логическая операция Or.

В режиме конструктора процесс создания запроса находится под вашим контролем, однако здесь есть вероятность допустить ошибку и необходимо больше времени, чем в мастере (пример 5.4).

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

Все запросы, которые рассмотрены в примерах 5.3 и 5.4 , содержат конкретные значения названий, имен, времени и т. д. Если требуется повторить такой запрос с другими значениями в условиях отбора, его нужно будет открыть в конструкторе, изменить условие и выполнить. Чтобы не делать многократно этих операций, можно создать запрос с параметрами. При выполнении такого запроса выдается диалоговое окно Введите значение параметра, в котором пользователь может ввести конкретное значение, а затем получить нужный результат. Параметр запроса определяется в строке Условие отбора конструктора для столбца, содержащего запрашиваемые значения. Параметром является слово или фраза, заключенные в квадратные скобки. Параметр будет выдаваться в виде приглашения в диалоговом окне при выполнении запроса (пример 5.5).

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

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

Наряду с запросами на выборку часто применяются запросы на действие. С помощью таких запросов можно обновлять значения полей записей, добавлять новые или удалять уже существующие записи. В СУБД Access такие запросы можно создать в режиме конструктора, воспользовавшись инструментами группы Тип запроса:

Пример 5.1. Режимы работы с запросами.

Режим SQL позволяет создавать и просматривать запросы с помощью инструкций языка SQL.

SQL (англ. structured query language — язык структурированных запросов). Применяется для создания, редактирования и управления данными в реляционной базе данных.

Пример 5.2. Группа инструментов Запросы вкладки Создание.

Пример 5.3. Создание запроса на выборку с помощью Мастера запросов.

1. Выбрать инструмент .

2. Выбрать вид запроса.

3. Выбрать источник данных.

4. Задать поле, содержащее повторяющееся значение.

5. Выбрать поля для отображения вместе с повторяющимися значениями.

6. Просмотреть и/или сохранить запрос.

Пример 5.4. Создание простых запросов на выборку с помощью Конструктора запросов.

1. Выбрать инструмент

2. Выбрать источник данных.

3. Добавить поля таблицы, которые будет содержать запрос. Для этого выполнить двойной щелчок по каждому из названий полей в макете таблицы.

4. Записать условие формирования набора записей в запросе.

4.1. Выбор по полю с текстовым типом данных.

Результат:

      

Результат:

4.2. Выбор по полю с числовым типом данных.

Результат:

4.3. Использование составного условия.

Результат:

      

Результат:

5. Сохранить запросы.

Пример 5.5. Создание запроса с параметрами.

1. Открыть один из запросов, созданных в примере 5.4 в конструкторе.

2. Изменить условия отбора на:

3. Сохранить с новым именем и открыть в режиме таблицы.

4. В диалоговом окне набрать одно из названий кинотеатра.

5. Просмотреть запрос.

Пример 5.6. Создание итогового запроса.

Создать итоговый запрос, определяющий, сколько мальчиков и сколько девочек посещают факультатив по математике.

1. Источник данных — таблица «Учащиеся».

2. Создать запрос с помощью конструктора (добавить в запрос только поле «Пол»).

3. Сгруппировать данные по полю «Пол» (нажать кнопку   в группе Показать или скрыть).

4. Добавить вычисляемое поле (в строке нового поля Групповая операция в списке выбрать функцию Count).

5. Сохранить и просмотреть запрос.

       

    1. Создание запросов на выборку

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

Запрос
лучше создавать в режиме Конструктора.

      1. Создание запроса на основе данных одной таблицы

Создадим
Запрос 1:
Выбрать из базы данных Сотрудники
фамилию, должность, зарплату сотрудников,
работающих в отделе номер 120.

Выберем
в окне базы данных объект Запросы,
а затем дважды щелкнем на значке Создание
запроса в режиме Конструктора

в правой части окна. Откроется бланк
запроса. Одновременно с ним откроется
диалоговое окно Добавление
таблицы

(см рис 2.11).

В
окне Добавление
таблицы

дважды щелкнем таблицу Сотрудник,
а затем щелкнем кнопку Закрыть.

В
строку Поле
в бланке запроса добавим поля ФИО,
Должность
,
Зарплата,
Номер отдела.
Добавление производится двойным щелчком
на именах полей, в списке полей таблицы
Сотрудник,
расположенном в верхней части бланка
запроса.

В
строке Условие
отбора
бланка
запроса для поля Номер
отдела

зададим условие отбора (наберем на
клавиатуре значение 120).

В
строке Вывод
на экран

бланка запроса
для поля Номер
отдела
уберем
флажок, щелкнув на нем. (для подавления
отображения этого поля на экране). Бланк
запроса примет вид, представленный на
рис. 2.12.

Щелкнем
кнопку Запуск
на панели инструментов Microsoft
Access
для представления результата выполнения
запроса.

Закроем
окно запроса. При закрытии окна появится
диалоговое окно Сохранение,
в котором зададим имя запроса Отдел
120
и щелкнем
кнопку ОК.

Окно
запроса и диалоговое окно Сохранение
представлены на рис. 2.13.

Рис.2.11.
Пустой бланк запроса с диалоговым окном
Добавление
таблицы
.

Рис.
2.12. Заполненный бланк запроса.

Рис.
2.13. Результат выполнения запроса с
диалоговым окном Сохранение.

      1. Создание запроса на основе данных двух таблиц

Создадим
Запрос 2:
Выбрать из базы данных Сотрудники
номер пропуска, фамилию, должность
сотрудников работающих в отделе,
руководимом начальником отдела с
фамилией Морозов. Результаты запроса
упорядочить по полю ФИО в алфавитном
порядке (по возрастанию).

Выберем
в окне базы данных объект Запросы,
а затем дважды щелкнем на значке Создание
запроса в режиме Конструктора

в правой части окна.

В
окне Добавление
таблицы

добавим таблицы, на основе которых будет
строиться запрос. Это таблицы Отдел
и Сотрудник.
Закроем окно.

Добавим
в бланк запроса поля Номер
пропуска
,ФИО,
Должность

из таблицы Сотрудник
и поле Фамилия
начальника

из таблицы Отдел.

Щелкнем
в поле ФИО
в строке Сортировка
и из раскрывающегося списка выберем
метод сортировки по
возрастанию
.

В
строке Вывод
на экран
для
поля Фамилия
начальника

уберем флажок для подавления отображения
этого поля на экране.

В
строке Условие
отбора
бланка
запроса для поля Фамилия
начальника

зададим условие отбора, набрав Морозов.
Можно без кавычек. В этом случае кавычки
будут добавлены автоматически.

Сохраним
запрос под именем Морозов.

Бланк
запроса представлен на рис. 2.14.
Результат запроса представлен на
рис. 2.15.

Рис.
2.14 Заполненный бланк запроса.

Рис.
2.15. Результат выполнения запроса.

      1. Создание запроса на выборку с параметром

Запрос
с параметром

позволяет пользователю вводить критерий
отбора данных при запуске запроса.

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

Бланк
запроса представлен на рис. 2.16.

Рис.
2.16. Заполненный бланк запроса с параметром.

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

наберем текст, приглашающий ввести
фамилию начальника отдела.

Сохраним
запрос под именем Начальник
отдела
.

Запустим
запрос на выполнение дважды щелкнув
значок запроса в окне базы данных.

На
экране появится окно Введите
значение параметра

с приглашением, которое было задано в
бланке запроса в
квадратных
скобках как условие отбора в поле Фамилия
начальника

(см. рис.2.17).

Рис.
2.17. Окно Введите
значение параметра
.

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

Результаты
запроса представлены на рис. 2.18.

Рис.
2.18. Результат выполнения запроса с
параметром.

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

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

При работе с базой данных очень часто возникает необходимость вычленить из всей массы хранимой информации, только интересующую. В таких случаях создается запрос на выборку. Это средство формирует результирующую таблицу, содержащую только необходимые по условию запроса данные из указанных базовых таблиц. Его создание в Access, как и для всех других объектов, возможно в автоматическом режиме, в ручном режиме и с помощью мастера. Мы воспользуемся ручным режимом, для более наглядного изучения внутренней структуры запроса. Но сначала небольшое отступление, по поводу использования языка запросов SQL.

Язык SQL (Structured Query Language – структурированный язык запросов) – это стандартный набор слов английского языка, применяемый для описания запроса к базе данных. Бросаться изучать его в данный момент нет необходимости. Access автоматически транслирует все запросы в последовательность символов своего собственного диалекта языка SQL, именуемого Jet SQL. Но и его изучение пока можно отложить. Все дело в том, что для упрощения создания запросов есть специальное средство, называемое бланком запроса по образцу. С его помощью можно в считанные минуты построить запрос, перетаскивая элементы запроса между соответствующими окнами. Делается это следующим образом:

  • Переходим на вкладку Запросы главного окна базы данных. Там пока нет ни одного готового объекта, но присутствует знакомая нам уже кнопка Создать. Вот она нам и нужна.
  • В открывшемся окне Новый запрос предлагаются на выбор все возможные режимы создания запроса. Выбираем ручной режим с помощью пункта Конструктор.

    22_1.gif (3994 b)

  • Далее необходимо выбрать таблицы базы данных, на основании которых будет построен запрос. Это делается с помощью окна Добавление таблицы, содержащего список всех имеющихся в базе таблиц. Выделяете нужную таблицу и нажимаете кнопку Добавить. Окно с перечнем полей соответствующей таблицы появится в верхней половине бланка запроса. Какие именно таблицы добавлять при создании запроса, решает разработчик базы данных. Главное требование – они должны содержать все необходимые для работы будущего запроса поля. Например, для создания запроса Картотека мне нужны таблицы Автор, Книги и Разделы. Кнопка Закрыть позволяет прервать процесс добавления таблиц и перейти к работе с бланком запроса.

    22_2.gif (4061 b)

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

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

    22_3.gif (7635 b)

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

      По возрастанию – запись с меньшим значением поля выводится перед большим значением. В алфавитном виде записи сортируются от А до Я и от A до Z.

      По убыванию – запись с большим значением поля выводится перед меньшим значением. В алфавитном виде записи сортируются от Я до А и от Z до A.

      Отсутствует – сортировка не производится и записи выводятся в порядке их следования в соответствующей таблице.

    • Флаг Вывод на экран позволяет скрыть от работающего с запросом некоторые поля. Это возможно, когда один и тот же запрос используется и как запрос и как источник информации для других объектов, например форм. Или когда необходимо выполнить сортировку или отбор по конфиденциальному полю, значения которого нельзя отображать в этом запросе. Поэтому для скрытия поля просто снимите соответствующий флажок.
    • Условие отбора позволяет указать тот критерий, по которому записи будут выбираться для включения в итоговую таблицу. Для каждого поля можно создать свое условие отбора. Тогда запись будет считаться удовлетворяющей запросу, если все значения соответствующих полей с указанным условием отбора, будут удовлетворять этим условиям.
  • Создайте все поля запроса и укажите соответствующие параметры сортировки и условия отбора. Если необходимо, то методом перетаскивания границ, задайте ширину полей таблицы. С помощью полосы прокрутки можно к свободным полям, если текущие уже заполнены.

    22_4.gif (3332 b)

  • 22_5.gif (110 b) Для проверки работоспособности запроса, запустите его на выполнение с помощью кнопки Запуск панели инструментов в верхней части окна программы. На экране появится результирующая таблица, заполненная записями, удовлетворяющими данному запросу. Для возврата обратно к режиму конструктора воспользуйтесь кнопкой Вид.
  • 22_6.gif (147 b) Для сохранения запроса нажмите кнопку Сохранить, на панели инструментов. В окне Сохранение укажите имя запроса, под которым он будет сохранен на вкладке Запросы, главного окна базы данных. Затем закройте окно запроса и запустите его на выполнение из главного окна. Первый запрос готов.

    22_7.gif (5212 b)

Добавить комментарий