Запросы на выборку в Access. Условия отбора Microsoft access условие отбора

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

Условием отбора является выражение, которое состоит из операторов сравнения и сравниваемых операторов. В качестве операторов сравнения и логических операторов могут использоваться следующие: =, <, >, < >, Between, In, Like, And, Or, Not, которые определяют операцию над одним или несколькими операндами.

Если условие отбора не содержит оператора, то по умолчанию используется оператор =.

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

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

Константами являются не изменяющиеся значения (например, True, Falls, Да, Нет, Null).

[Имя таблицы]! [Имя поля]

Условия отбора, заданные в одной строке, связываются с помощью логической операции И, а заданные в разных строках - с помощью логической операции ИЛИ. Эти операции могут быть заданы явно в условии отбора с помощью операторов AND и OR соответственно.

Сформировать условие отбора можно с помощью построителя выражения. Перейти в окно Построитель выражений можно, нажав кнопку [Построитель) на панели инструментов или выбрав команду Построить в контекстно-зависимом меню. При этом курсор мыши должен быть установлен в ячейке ввода условия отбора.

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

Для выполнения запроса необходимо на панели инструментов конструктора запросов нажать кнопку [Запуск (!)] или [Представление запроса].

Сортировка данных. Для удобства просмотра можно сортировать записи в таблице в определенной последовательности. Кнопки сортировки на панели инструментов (или команды меню Записи\Сортировка, Сортировка по возрастанию (Сортировка по убыванию) позволяют сортировать столбцы по возрастанию или убыванию. Прежде чем щелкнуть по кнопке сортировки, следует выбрать поля, используемые для сортировки. Современные СУБД (такие, как Access) никогда не сортируют таблицы физически, как это делалось раньше. Средства сортировки данных (а также фильтрации, поиска и замены) реализованы в Access как автоматиче­ски создаваемые запросы. Записи таблицы всегда располагаются в файле базы данных и том порядке, в котором они были добавлены в таблицу.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

При создании запросов важно правильно сформулировать условия отбора записей из БД. В MS Access доступны следующие возможности:

· простой критерий выборки;

· точное несовпадение значений одного поля;

· неточное совпадение значений поля;

· выбор по диапазону значений;

· объединение критериев нескольких полей;

· условие отбора для результатов итоговых вычислений.

Простой критерий выборки. Записи выбираются по совпадающим значениям поля. Например, из поля Город необходимо выбрать значения Минск. Для этого в бланке запроса в строке Условие отбора в графе Город вводится с клавиатуры значение «Минск».

Точное несовпадение значений одного поля . Из базы выбираются все записи, кроме тех, для которых задано условие. Например, необходимо выбрать все записи с полем Город , кроме тех, которые в этом поле имеют значение Минск . Для этого в строке Условия отбора в графе Город вводится выражение Not «Минск» или<> «Минск» . Логический оператор Not исключает записи со значением Минск , оператор сравнения <> означает «не равно».

Неточное совпадение значений поля . Такое условие можно задавать, если не известны значения полей. Для выборки используется оператор сравнения Like (подобный). Рядом с оператором записывается образец, содержащий или точное значение, например,Like «Петров», или включающий символы шаблонов, например, Like «Пет*» .

Access допускает следующие символы шаблонов:

? - любой один знак;

* - ноль или более знаков;

#- любая одна цифра;

[список знаков] - любой один знак в списке знаков;

[!список знаков] - любой один знак, не входящий в список.

Кроме списка знаков в квадратные скобки может заключаться диапазон символов, например, [Б-Р]. Условие [б-рБ-Р] позволяет выбрать как заглавные, так и прописные буквы.

При условии Like «[БР]*» выбираются все фамилии, которые начинаются на Б или Р.

Выбор по диапазону значений . Для задания диапазона значений используются операторы:

> (больше),

>= (не менее, больше или равно),

< (меньше),

<= (не более, меньше или равно) (например, >= 10).

Between ... аnd ... (служит для проверки принадлежности диапазону, верхняя и нижняя граница которого соединена логическим оператором AND (например, between 1990 and 1995).

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

Объединение критериев одного поля . Если на одно поле налагается более одного условий, то условные выражения могут быть соединены с помощью операторов Or (ИЛИ ) и And (И ).

Объединение критериев нескольких полей . В запросе может быть несколько условий отбора. В этом случае имеют место два варианта выборки записей:

запись выбирается только при выполнении всех условий, что соответствует логической операции И . Запрос называется И-запросом ;

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

При построении ИЛИ-запроса каждое условие, входящее в критерий, должно располагаться на отдельной строке. При построении И-запроса каждое условие, входящее в критерий, должно располагаться в одной строке.

В итоговых запросах существуют два типа критериев отбора записей.

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

Формы

Приложение MS Access создает формы с помощью нескольких средств: форма, разделенная форма, несколько элементов, мастер форм, пустая форма, конструктор форм.

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

Если MS Access обнаруживает одну таблицу, связанную отношением «один-ко-многим» с таблицей или запросом, который использовался для создания формы, MS Access добавляет таблицу данных в форму, основанную на связанной таблице или запросе. Например, если создается простая форма, основанная на таблице «Сотрудники», и между таблицами «Сотрудники» и «Заработная плата» определено отношение «один-ко-многим», то в таблице данных будут отображаться все записи таблицы «Заработная плата», относящиеся к текущей записи сотрудника. Если таблица данных в форме не нужна, ее можно удалить. Если существует несколько таблиц, связанных отношением «один-ко-многим» с таблицей, которая использовалась для создания формы, то данные таблицы в форму не добавляются.

Разделенная форма – позволяет одновременно отображать данные в двух представлениях – в режиме формы и в режиме таблицы.

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

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

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

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

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

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

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

Инструментом конструирования формы являются элементы управления . Наиболее часто используемый элемент управления – поле. К другим элементам управления относятся: надписи, флажки, элементы управления подчиненных форм и отчетов и другие. Элемент управления «поле» может быть присоединенным, свободным и вычисляемым.

· Присоединенный элемент управления – элемент управления, источником данных которого служит поле таблицы или запроса. Присоединенный элемент управления формируется посредством окна Список полей и служит для отображения значений полей источника данных. Это наилучший способ создания присоединенного элемента управления по двум причинам:

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

· присоединенный элемент управления наследует значения свойств полей источника данных, например, Формат, Число десятичных, Маска ввода .

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

· Вычисляемый элементы управления – элемент управления, источником данных которого является выражение, а не поле.

Конструктор MS Access позволяет создавать формы с подчиненной формой . Подчиненная форма - это такая форма, которую внедряют в другую форму, называемую основной, с целью получения дополнительной информации из другой таблицы. Сначала создают подчиненную форму, затем основную форму и после этого помещают подчиненную форму в основную. Допускается несколько уровней подчиненности форм.

Для изменения форм используются режимы макета и конструктора.

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

Режим конструктора Режим конструктора позволяет более подробно просмотреть структуру формы. Можно просматривать разделы колонтитулов и данных формы. В этом режиме форма не выполняется, поэтому при внесении изменений невозможно просматривать базовые данные. Однако в режиме конструктора удобнее выполнять другие работы:

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

· изменять источник элемента управления «Поле» непосредственно в поле без использования окна свойств.

· изменять размеры разделов формы, таких как «Заголовок формы» или «Область данных».

· изменять свойства формы, которые недоступны для изменения в режиме макета (например, Представление по умолчанию или Режим формы ).

Отчеты

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

Приложение MS Access создает отчеты следующими средствами: отчет, мастер отчетов, пустой отчет, конструктор отчетов.

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

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

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

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

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

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

Конструктор отчетов. Структура отчета, как и структура формы, имеет несколько разделов: Заголовок отчета, Верхний колонтитул, Заголовок группы, Область данных, Примечание группы, Нижний колонтитул, Примечание отчета.

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

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

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

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

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

· Нижний колонтитул. Располагается внизу каждой страницы. Используется для нумерации страниц и для печати постраничной информации.

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

В проект отчета можно вносить изменения в режимах макета и конструктора.

Просматривать отчет можно различными способами:

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

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

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

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

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

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

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

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

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

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

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

Рис. 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 “[д-к]*”. Здесь - (минус) соответствует любому символу из диапазона. Диапазон необходимо указывать по возрастанию (д-к, но не к-д).

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

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

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

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

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

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

Добавление полей на основе условий отбора;

Добавление записей, если некоторые поля из одной таблицы не существуют в другой. Запрос на добавление добавит данные в совпадаю­щие поля и пропустит остальные.

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

Создание таблицы для экспорта в другую базу данных Microsoft Access;

Создание отчетов, содержащих данные нескольких таблиц;

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

Создание архивной таблицы, содержащей старые записи;

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

Выбор данных из одной таблицы

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

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

Проще всего создать запрос на основе одной таблицы так: открыть окно базы данных, выбрать в окне базы данных вкладку Запросы , нажать кнопку Создать, в новом окне выбрать режим Конструктор и Ok . В следующем окне "Добавление таблицы" выбрать нужную таблицу, а затем нажать кнопки Добавить и Закрыть .

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

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

Рис.10.1. Окно конструктора запросов

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

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

Ввод условий отбора. Если нужно отобрать записи с конкретным значением поля, его нужно ввести в ячейку Условие отбора этого поля. Текстовое значение в качестве условия заключается в кавычки. При задании условия отбора можно пользоваться знаками отношений < , >, >=, <=, =,< > и логическими операциями or , and .

Кроме этого Access предоставляет специальные операторы для отбора данных, выводимых в запросе:

between - определяет диапазон значений. Between 10 and 20 означает то же самое, что и выражение >=10 and <=20 ;

in - задает используемый для сравнения список значений. Выражение in (“ wa ”,” ca ”,” id ”) означает то же самое, что и выражение wa or ca or id ;

like - этот оператор позволяет при отборе текстовых полей использовать символы: ?, *,# . Символ # указывает, что в данной позиции должна стоять цифра, символы ? и * имеют то же назначение, что и в именах файлов OC MS DOS.

Например, like B *” - означает, что нужно выбрать поля, начинающиеся с буквы В .

Условия отбора для дат и времени Access обрабатывает в любом формате. При вводе дату или время необходимо заключать в символы #. Например, #15 Апрель 1998#, #15/04/98# определяют одну и ту же дату.

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

day (дата) - возвращает значение дня месяца в диапазоне от 1 до 31. Если нужно отобрать записи с определенными днями месяца - задается вычисляемое поле, например, day([Дата_заказа]) и вводится условие отбора, например, >10. В этом случае выбираются все записи поля, вычисляемое поле которых >10;

month (дата) - возвращает значение месяца года в диапазоне от 1 до 12;

year (дата) - возвращает значение года в диапазоне от 100 до 9999;

weekday (дата) - возвращает целое число от 1(Воскресенье) до 7(Суббота), соответствующее дню недели;

date () - возвращает текущую системную дату.

Вычисляемые поля . Можно выполнить вычисления с любыми полями таблицы и сделать вычисляемое выражение новым полем в наборе записей. При этом можно использовать любые функции, встроенные в Access, и выполнять над полями таблицы арифметические операции с помощью операторов: +, -, *, /, \, ^, mod, &. Например, пусть имеется имя поля с именем “Количество ”, где записано количество единиц товара и поле “Цена , где записана стоимость единицы товара. Тогда для подсчета стоимости товара в пустое поле бланка запроса нужно ввести выражение Количество*Цена и значения этих полей будет перемножено.

Задание имен вычисляемых полей . При создании любого выражения в бланке запроса Access помещает стандартное имя поля “Выражение1 :”. Можно изменить или назначить имена полей, что является важным, если их нужно использовать в отчете или других запросах. Это делается с помощью окна свойств. Для этого нужно щелкнуть по любой ячейке соответствующего столбца, нажать кнопку Свойства на панели инструментов и выбрать Подпись .

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

Для этого в строку "Условие отбора" вводится фраза в квадратных скобках, которая будет выводиться в качестве "подсказки" в процессе диалога, например [Введите фамилию]. Таких параметров может быть несколько, каждый для своего поля, при этом имя каждого параметра должно быть уникальным.

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

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

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

sum - вычисляет сумму всех значений заданного поля в каждой группе. Используется только для числовых и денежных полей;

avg - Вычисляет среднее арифметическое значение всех значений данного поля в каждой группе;

min , max - вычисляет наименьшее (наибольшее) значение поля внутри группы;

count - вычисляет число записей, в которых значения данного поля отличны от Null .

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

Поделиться