Как сделать условия отбора в 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). Таким образом, по умолчанию всегда создается запрос на выборку. Команды этой вкладки представляют инструментарий для выполнения необходимых действий при создании запроса. Эта вкладка открывается, когда в режиме конструктора создается новый запрос или редактируется существующий.

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

ЗАМЕЧАНИЕ
Окно запроса в режиме таблицы аналогично окну просмотра таблицы базы данных. Через некоторые таблицы запроса может производиться изменение данных базовой таблицы, лежащей в основе запроса. Запрос, просматриваемый в режиме таблицы, в отличие от таблицы базы данных 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.

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

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

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

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

Приложение СУБД MS Access – это полноценный помощник для создания и ведения баз данных, заключенных в таблицы и массивы. Если база имеет слишком большой объем, быстро найти необходимые значения довольно сложно.

Именно поэтому в Access существует такая функция, как запросы. Рассмотрим, что это такое, как работает, какие имеет особенности.

Создание запросов в Microsoft Access

Чтобы разобраться, как создавать запросы в Access, нужно знать основные положения работы с СУБД.

Существует два способа выполнить данную процедуру:

  • Конструктор запросов.
  • Мастер запросов.

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

Легкий путь для новичков

Знающий человек за несколько кликов мышью выбирает те компоненты, которые потребуются пользователю для выполнения запроса, а затем быстро формирует реестр, в соответствии с собранными ключевыми значениями. Если это первое знакомство с СУБД, и пользователь не представляет, как создавать запросы в Access, то выбирается программа Мастер.

как сделать условия отбора в access

В данном режиме можно ознакомиться и разобраться со следующими типами запросов:

  • Простой.
  • Перекрестный.
  • Записи без подчиненных.
  • Повторяющиеся записи.

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

Простой запрос

Этот инструмент работы с таблицами собирает нужные данные из указанных пользователем полей. Уже по названию видно, что это самый популярный тип запросов для новичков. Его удобство заключается в том, что такая процедура открывается в новой вкладке. Поэтому ответ на вопрос, как создать запрос в Access 2010, становится очевидным уже после открытия первого меню Мастера.

как сделать условия отбора в access

Перекрестный запрос

Этот тип выборки более сложный. Чтобы разобраться, как создать перекрестный запрос в Access с помощью «Мастера» в данном режиме, нужно кликнуть по этой функции в первом окне.

как сделать условия отбора в access

На экране появится таблица, в которой можно выбрать до трех столбцов, расположенных в оригинале.

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

как сделать условия отбора в access

На фото показано, что перекрестный запрос создан, и что по заданным параметрам совершены необходимые действия.

Повторяющиеся записи

Как понятно из названия, основное предназначение данного запроса – выборка всех одинаковых строк в таблице по указанным параметрам. Выглядит это так:

как сделать условия отбора в access

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

Чтобы выбрать повторяющиеся записи, нужно раскрыть список запросов и создать там новую папку. Далее в окошке «Новый запрос» выбрать строку «Поиск повторяющихся записей». Далее нужно следовать указаниям Мастера.

Записи без подчиненных

Это последний тип запросов, доступный в режиме «Мастер – Записи без подчиненных».

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

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

как сделать условия отбора в access

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

Функции запросов в MS Access

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

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

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

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

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

как сделать условия отбора в access

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

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

как сделать условия отбора в access

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

Чтобы завершить операцию, нужно нажать на кнопку «Выполнить».

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

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

Начинать данную процедуру по выборке данных нужно с создания простого запроса, чтобы выбрать нужные поля. Далее через режим Конструктора обязательно нужно заполнить поле «Условие отбора» и, уже исходя из внесенного значения, будет осуществляться отбор.

Таким образом, на вопрос о том, как создать запрос с параметром в Access, ответ простой — внести исходные параметры для выборки. Чтобы работать с Конструктором необходимо пользоваться Мастером запросов. Там создается первичные данные для фильтрации, которые служат основой дальнейшей работы.

Расширенный перекрестный запрос

Продолжаем усложнять ситуацию. Еще труднее для понимания является информация о том, как создавать запросы в Access, если присутствует несколько таблиц с данными. Перекрестный запрос уже рассматривался выше, как один из вариантов работы с Мастером. Однако, и в режиме «Конструктора» можно создавать подобный запрос.

Для этого необходимо нажать «Конструктор запросов» — «Перекрестный».

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

как сделать условия отбора в access

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

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

Конечно, присутствуют и «подводные камни», которые могут помешать в работе. Например, при создании запроса на сортировку базы данных по значению столбцов система выдает ошибку. То есть доступна только сортировка по стандартным пунктам – «возрастание и убывание».

Краткие рекомендации

Подводя итоги, нужно сказать, что решить, как создавать запросы в Access – с помощью Мастера или Конструктора, должен сам пользователь. Хотя, для большинства людей, которые используют СУБД MS Access, больше подойдет первый вариант. Ведь Мастер сам сделает всю работу, оставив для пользователя только несколько кликов мышью, при выборе условий запроса.

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

Есть один момент, который доступен лишь программистам. Так как основным языком СУБД является SQL, то нужный запрос можно написать в виде программного кода. Чтобы работать в данном режиме, достаточно нажать на строку уже созданного запроса, и в открывшемся контекстном меню выбрать «Режим SQL».

В большинстве современных СУБД имеется свой вариант QBE, незначительно отличающийся от первого описания QBE, предложенного в конце 70-х годов ХХ в. Рассмотрим некоторые возможности QBE СУБД MS Access.

Используем для примера таблицу БД, которая относится к торговле (рис. 3.10). Имя таблицы TYPE (типы товаров). Она имеет столбцы: товар – названия товара; цвет – его цвет; стоимость – стоимость товара.

Выборка данных может осуществляться по следующим вариантам:

1. Простая выборка, например: «Вывести товары зеленого цвета из таблицы TYPE».

2. Простая выборка с упорядочиванием.

3. Выборка с квалификаторами (условиями). Выбор записей из исходной таблицы может быть основан на: а) точном совпадении; б) частичном совпадении; в) сравнении.

Запросы позволяют получать результирующие таблицы, поля которых удовлетворяют определённым условиям (критериям). Эти условия задают в бланке запроса в строке Условия отбора. Условиями отбора являются логические выражения, состоящие из операторов и операндов. Используются операторы сравнения =, < , >, (не равно), Between, In, Like и и логические операторы And, Or, Not. Допускается применять шаблоны с подстановочными символами.

как сделать условия отбора в access

Рис. 3.10. Пример таблицы БД

Если точное значение не известно или необходимо вводить значение не полностью, то удобно использовать шаблон (образец) с подстановочными символами (знаками). Примеры подстановочных символов:

* — соответствует любому количеству любых символов. Пример: 77* — для нахождения всех телефонов с номерами, начинающимися на 77.

? — соответствует одному текстовому символу. Пример: 77-4?-0? — для нахождения всех телефонов с номерами, содержащими четыре указанные цифры.

Шаблоны используются совместно с оператором Like. Этот оператор позволяет создавать шаблоны, использующие подстановочные символы при поиске в текстовых полях. Например, фамилия сотрудника известна неточно. Это может быть Петров, Петровский, Пеотровский и т.п. Тогда следует использовать для выборки в строке Условие запись Like «Пе*».

Известно, что имя состоит из 4-х букв. Тогда подойдет запись Like «????».

Оператор Between задаёт интервал значений. Например, Between 1 And 5

(указанные края интервалов в выборку включаются).

Оператор In выполняет проверку на равенство любому значению из списка, заданному в круглых скобках. Например, In(«ручка»;»духи»).

Логические операции И, ИЛИ могут быть заданы явно в выражении условия с помощью операторов AND и OR. Например, «духи» OR «карандаш».

В качестве операндов в запросах могут использоваться литералы, константы, идентификаторы (ссылки).

Литералами являются конкретные значения, воспринимаемые системой так, как они записаны. Литералом может быть число, дата, строка. Например, 1146, #31.01.02 #, «Липецк».

Константами являются постоянные значения, которые определены в Access. Например, True, False, Null, Да, Нет.

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

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

Условие точного несовпадения значений одного из полей. Если в таблице надо найти записи, значения полей которых не удовлетворяют определенному условию, то используется оператор Not. Оператор Not или вводится перед сравниваемым значением. Пример. Отобрать все записи таблицы TYPE, за исключением записей «карандаш» в поле Товар. Для этого в бланке запроса в столбце поля Товар в строке Условие отбора вводится Not » карандаш».

Условие неточного совпадения. Выбор записей по условию неточного

совпадения значений можно осуществить, используя оператор Like. Этот оператор позволяет найти требуемые записи, зная лишь приблизительное написание текстовой величины. В операторе Like можно использовать шаблоны с подстановочными символами, что расширяет возможности поиска записей при неточном задании условий. Пример условия отбора: Like “*”. Здесь — (минус) соответствует любому символу из диапазона. Диапазон необходимо указывать по возрастанию (д-к, но не к-д).

Выбор записей по диапазону значений. Для задания диапазона значений в окне конструктора запросов используются операторы >, 100.00 AND < 500.00; Between # 01.01.97 # AND #31.03.97#; Like “*”. Напомним, что символ # применяется для данных типа «дата/время».

Пример 1. Запрос с точным несовпадением в одном поле и с условием сравнения в другом поле. Запрос на выборку из таблицы TYPE всех не красных товаров, цена которых более 5, представлен на рис. 3.11 (запрос создан в режиме Конструктора).

Результат выполнения этого запроса показан на рис. 3.12.

Пример 2. Запрос на частичное совпадение. Запрос на выборку из таблицы TYPE товаров, название которых состоит из 4-х букв и заканчивается на «хи». Результат выполнения запроса показан на рис. 3.14.

как сделать условия отбора в access

Рис. 3.11. Запрос на выборку товаров не красного цвета стоимостью более 5

как сделать условия отбора в access

Рис. 3.12. Результат выполнения запроса, сформированного на рис. 3.11

как сделать условия отбора в access

Рис. 3.13. Запрос на выборку товаров, название которых состоит из 4-х букв и заканчивается на «хи»

как сделать условия отбора в access

Рис. 3.14. Результат выполнения запроса, сформированного на рис. 3.13

Дата добавления: 2015-08-20; просмотров: 2641;

ПОСМОТРЕТЬ ЕЩЕ:

Лабораторная работа № 3

Цель работы: создание фильтров, условных запросов и запросов на выборку на основе учебной базы «Библиотека».

Краткие теоретические сведения

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

Фильтры. Фильтры обычно используются при работе с одной таблицей. Они находят широкое применение при проектировании и эксплуатации баз данных в Microsoft Access. Преимуществом перед запросами является их простота. Кроме того, фильтры не занимают лишнего места на диске, в отличие от запросов. Для фильтрации данных в таблицах можно воспользоваться следующими способами:

Поиск данных. Чтобы выполнить простой поиск по одному полю, сначала выделите его (поместив курсор на заголовок поля, при этом записи в поле изменят цвет на инверсный). Затем в меню при помощи команд «Правка ® Найти» перейдите к диалоговому окну «Поиск в поле». В поле ввода «Образец» укажите значение, которое Access должен найти. В образе поиска можно использовать подстановочные символы. Символ * (звездочка) заменяет строку любой длины, а? (знак вопроса) – любой произвольный символ. Например, «*AB??DE*» совпадает с «ABERDEEN» и «TAB IDEA», но не с «LAB DEPARTMENT».

Фильтр по выделенному. Предположим, вам нужно в базе данных «Библиотека» выбрать все записи таблицы «Издательства», в которых в качестве города указан город Москва. Найдите одну запись, в которой указан город Москва, щелкните правой кнопкой мыши по этому полю и выберите «Фильтр по выделенному» либо через меню «Запись ® Фильтр ® Фильтр по выделенному». В результате будут отображены все записи, у которых поле «Город» имеет значение «Москва». Опция «Исключить выделенное» – наоборот, оставляет на экране поля, значения которых не совпадают с выделенной записью.

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

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

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

Существует немало различных видов запросов, но самые простые из них и к тому же используемые наиболее часто – это запросы на выборку. С них и принято начинать знакомство с созданием запросов. Цель запроса на выборку состоит в создании результирующей таблицы, в которой отображаются только нужные по условию запроса данные из базовых таблиц. Как и другие объекты Access, запросы можно создавать автоматически с помощью Мастера или вручную в режиме Конструктора.

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

Рассмотрим выбор данных из одной таблицы на примере учебной базы данных «Библиотека». В данном примере организуем выборку читателей с фамилией «Бобров». Такой запрос будет называться условным.

Перейдите на вкладку «Запросы» и выберете «Создание запроса в режиме конструктора». Далее вам будет предложен список таблиц. Выберите таблицу «Читатели» и нажмите кнопку «Добавить». Так как мы ограничиваемся только одной таблицей, закройте это диалоговое окно. Приступим к заполнению конструктора запроса.

В строке запроса «Поле» в первом столбце выберите поле «Имя», во втором – «Отчество», в третьем – «Фамилия». Тот же результат будет получен, если последовательно выбирать эти поля в таблице двойным щелчком по нужному полю. В первом столбце, в строке «Условие отбора» введите фамилию: Бобров. Запрос должен иметь следующий вид (рис. 8).

Поле:

Имя

Отчество

Фамилия

Имя таблицы:

Читатели

Читатели

Читатели

Сортировка:

Вывод на экран:

ü

ü

ü

Условие отбора:

Бобров

Или:

Рис. 8. Параметры запроса на выборку

Закройте окно конструктора запроса. Перед закрытием Access запросит имя, под которым следует сохранить запрос. Введите «Бобров». Для того чтобы просмотреть результат работы запроса, наведите на него указатель и нажмите кнопку «Открыть». В результате появится окно (рис. 9).

Имя

Отчество

Фамилия

Бобров

Виктор

Иванович

S

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

Теперь рассмотрим пример выборки данных из нескольких таблиц. Просмотрим читателей, которые в 1996 г. заказали «Сборник задач» М. И Сканави. При этом пусть нам требуется вывести только название книги и фамилию читателя.

Для начала по вышеописанной процедуре откройте окно конструктора нового запроса и добавьте таблицы «Читатели», «Книги», «Выдача книг».

Переходим к заполнению параметров запроса. Так как нам следует организовать выборку по фамилиям читателей, названию книги и дате заказа, вводим соответствующие поля в бланк запроса. Далее вводим условие отбора для поля «Название книги» – «Сборник задач», а в условии отбора в поле «Дата заказа» – «Between 1.01.96 and 31.12.96». В данном случае мы используем оператор «Between … and», который организует выборку данных в указанном промежутке значений. Существует множество операторов для задания условия отбора, с которыми вы можете ознакомиться, используя справочную систему Access.

Строка «Вывод на экран» в бланке запроса предназначена для скрытия отображения поля в режиме просмотра запроса. Например, скроем поле «Дата заказа» в рассматриваемом примере, так как оно необходимо только для задания условия отбора. Бланк запроса должен иметь следующий вид (рис. 10).

Поле:

Имя

Название

Дата заказа

Имя таблицы:

Читатели

Книги

Выдача книг

Сортировка:

Вывод на экран:

ü

ü

Условие отбора:

Сборник задач

Between 1.01.96 and 31.12.96

Или:

Рис. 10. Многотабличный запрос на выборку

Сохраните запрос под именем «Сборник задач в 1996 году» и запустите его. В результате появится результат в следующем виде (рис. 11).

Имя

Название

Федосенко

Сборник задач

Захаров

Сборник задач

S

Рис. 11. Результат многотабличного запроса на выборку

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

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

В узкий столбец непросто записать длинную формулу, но если нажать комбинацию клавиш SHIFT+F2, то открывается вспомогательное диалоговое окно, которое называется «Область ввода». В нем можно ввести сколь угодно длинную формулу, а потом щелчком по кнопке «ОК» перенести ее в бланк запроса по образцу.

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

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

Для построения условий отбора могут применяться элементарные математические функции (=, , =, ), логические функции сцепки and (и) or (или), функция Like «текст» для выбора по значению текстового поля, функция выбора по списку In (список значений через запятые).

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

Москва or Минск – издательства Москвы или Минска.

Not Москва – все кроме Москвы.

Like «С*» – все текстовые записи, которые начинаются с буквы «С».

1100 – все кроме указанного значения.

>#01/03/98# – начиная с указанной даты.

Для выборки данных, связанных с определенной датой, можно воспользоваться встроенными функциями обработки даты Microsoft Access. Это функции Date, Day, Month, Year, DatePart. Рассмотрим каждую из них.

Date () – возвращает текущую дату. Обычно используют, если требуется связать запрос с текущей датой, месяцем, годом и т. п.

Day (), Month (), Year () – для указанной даты возвращают целочисленное значение дня, месяца и года.

DatePart (интервал; ) – возвращает для указанной даты или времени целочисленное значение, заданное параметром «интервал». Этот параметр – строковая переменная. Допустимые значения: yyyy – год, Q – квартал, m – месяц, Y – день года, D – день месяца, w – день недели, ww – неделя, h – часы, n – минуты, s – секунды.

Пример: DatePartQ», Date ()) – при этом будет выведен номер квартала для текущей даты.

Используя вышеприведенные функции, предыдущий запрос можно привести к следующему виду (рис. 12).

Поле:

Имя

Название

Выражение1: Year (Дата заказа)

Имя таблицы:

Читатели

Книги

Выдача книг

Сортировка:

Вывод на экран:

ü

ü

Условие отбора:

Сборник задач

Или:

Рис. 12. Создание выражений в полях запроса

Задание к лабораторной работе

1. Ознакомиться на практике с методами использования фильтров в СУБД Microsoft Access. Продемонстрировать выборку по трем начальным буквам фамилии, по двум полям одновременно.

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

Запрос должен выводить только Ф. И.О. читателей в алфавитном порядке и их домашние телефоны.

Запрос должен осуществлять выбор книг издательства «Мир» в алфавитном порядке.

Запрос должен осуществлять поиск книг по заданному сочетанию букв «упр» в теме.

Запрос должен выводить в одном поле Ф. И.О. читателей, заказавших книги в 2002 г.

Чтобы вывести Ф. И.О. в одном поле, создадим выражение в поле запроса по формуле: &» «&&» «&. После нажатия на «Ввод», если нет ошибки, Access перед формулой добавит фразу «Выражение1:». Во второй строке этой колонки необходимо выбрать таблицу «Читатели» и установить отображение на экран.

3. Создать и сохранить запросы с использованием встроенных функций обработки даты в поле «Дата заказа», которые позволят произвести следующие выборки из нескольких таблиц:

· Информация о заказах на книги за последние 30 дней.

· Все книги, заказанные после 15 числа любого месяца.

· Читатели, сделавшие заказы на книги в 1998 году.

· Читатели, сделавшие заказы на книги в январе 1997 года.

· Читатели, сделавшие заказы на книги в текущем месяце текущего года.

· Читатели, сделавшие заказы на книги в первом квартале 1997 г.

3. Выполнить запрос на выборку в индивидуальном задании. Самостоятельно разработать задание и создать запрос с применением встроенных функций обработки данных в поле с типом дата/время для своей базы данных.