Как сделать условие отбора в access
Перейти к содержимому

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

  • автор:

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

Для ограничения списка записей, получаемых в результате работы запроса, только удовлетворяющими определенным условиям — в бланке запроса предусмотрены поля для условий отбора. Коротко про это было рассказано в «Шаг 22 — Создание запроса на выборку», теперь настало время разобраться более подробно.

Самое главное, что следует запомнить, это то, что для каждого поля запроса можно создать свое условие отбора. Если это числовое поле, то можно указать интересующий диапазон значений. Например, в поле Цена можно задать условие &gt20, что позволит выбрать все книги, цены которых превышают цифру 20.

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

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

Для этой цели служит специальная команда языка SQL, которая выглядит так:

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

    В режиме конструктора, скопируйте текст подсказки (без квадратных скобок) из поля Условие обора в буфер обмена. Для этого выделите строку подсказки и нажмите комбинацию клавиш Ctr+C на клавиатуре или воспользуйтесь пунктом Копировать, контекстного меню правой кнопки мыши.

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

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

1.3. Условие отбора записей в запросе

Access предоставляет следующие возможности при формулировании условия отбора записей:

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

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

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

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

? – заменяет один любой символ;

* – заменяет любое количество любых символов;

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

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

Например, при условии Like ‘[BP]*’ будут отбираться только фамилии, начинающиеся с букв В или Р;

4) Выбор по диапазону значений. Для задания диапазона значений используются операторы: < (меньше), > (больше), <= (не больше), >= (не меньше), Between And (между);

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

а) запись выбирается только при условии выполнения всех критериев отбора (логическое И). Тогда все условия для всех полей должны располагаться в одной строке;

б) запись выбирается при выполнении хотя бы одного из критериев отбора (логическое ИЛИ). Тогда все условия для всех полей должны располагаться на отдельной строке.

Если на одно поле налагается более одного условия, можно объединять условия при помощи логических операторов AND и OR.

1.4. Многотабличные запросы. Группировка

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

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

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

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

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

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

Кроме группировки в строке Групповая операция могут содержаться следующие итоговые операции:

Count подсчитывает количество совпадающих записей в группе и выводит их на экран;

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

Avg вычисляет среднее значение всех чисел, содержащихся в данном поле;

Min находит минимальное значение из всех найденных в результате выполнения запроса;

Max находит максимальное значение из всех найденных в результате выполнения запроса;

StDev рассчитывает стандартное отклонение для отобранных значений поля;

Var рассчитывает дисперсию для отобранных значений поля;

First выводит первую запись, найденную в результате выполнения запроса;

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

В списке кроме итоговых операций находятся Группировка, Выражение и Условие.

Группировку используют для тех полей, записи которых объединяют в группы;

Выражение сообщает Access о желании выполнить вычисления в поле;

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

Выбор условий отбора записей в запросе

Оператор — это символ или слово, например, = или Оr, указывающие выполнение операции над одним или несколькими элементами. Операторы позволяют выполнять операции над элементами формулы. Access позволяет использовать различные типы операторов для вычислений на листе:

  • арифметические операторы — служат для выполнения арифметических операций над числами (таблица);
  • операторы сравнения — используются для сравнения двух значений. Результатом сравнения может являться логическое значение: либо ИСТИНА, либо ЛОЖЬ;
  • текстовый оператор конкатенации Амперсанд (&) — используется для объединения нескольких текстовых строк в одну строку;
  • операторы ссылки — применяются для описания ссылок на диапазоны ячеек.

Запрос записей в определенном диапазоне значений может выполняться с использованием следующих операторов сравнения: = — равно; > — больше, чем; < — меньше, чем;
<> — не равно;
>= — больше или равно;
<= — меньше или равно.
Допустим, вас интересуют сотрудники, зарплата которых превышает 300 рублей. В строку Условия отбора (Criteria) введите: >300.
Как правило, операторы сравнения используются в числовых полях или полях дат, но они могут применяться и в текстовых полях. Например, если ввести в текстовое поле условие отбора < ‘П’, то будут выбраны значения поля, начинающиеся после буквы «П».

Если вы не уверены в написании какого-либо слова, то можете использовать оператор LIKE и подстановочный знак. Напомним, что знак вопроса заменяет один символ, а звездочка * — группу символов. Например, выражение: LIKE П?Л выполняет поиск слов, начинающихся с буквы П. Выражение: LIKE выполняет поиск слов, пел, пал, пол и т.п.
Под выражением подразумевается любая комбинация операторов, констант, значений текстовых констант, функций, имен полей (столбцов), элементов управления или свойств, результатом которой является конкретное значение.

Выполнение стандартных вычислений нал значениями поля

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

  • Sum — вычисление суммы значений поля;
  • Avg — определение среднего значения поля;
  • Min — нахождение минимального значения поля;
  • Мах — нахождение максимального значения поля;
  • Count — подсчет количества записей поля (может применяться для всех полей);
  • StDav — расчет стандартного отклонения поля;
  • Var — расчет изменения значений поля.

Выполнение групповых операций

Столбец итогов может содержать итоговые данные для всех записей таблицы или сгруппированных по какому-нибудь принципу. Например, нас может интересовать максимальная или средняя цена товаров (поле Цена) каждого типа (поле Тип), представленных в таблице. Для использования итоговых операторов в указанной задаче выполните следующие действия:

  • в запросной форме в строке Вывод на экран (Show) поставьте флажки в полях: Тип и Цена, которое будет использоваться для вычислений;
  • выберите в меню Вид (View) команду Групповые операции (Totals) или jm-жмите одноименную кнопку на панели инструментов;
  • установите курсор в поле, над значениями которого будут выполняться вычисления, и выберите в ячейке Групповая операция (Total) требуемую функцию;
  • в меню Запрос (Query) выберите команду Запуск (Run).

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

Рис. 24.11 Составление запроса с использованием групповой операции

Расширение условий отбора

Например, вы хотите узнать объем продаж дорогих (дороже 2500 руб.) и дешевых (меньше 500 руб.) заказов. Введите в ячейку Условия отбора (Criteria) : >2500, в ячейку или (or) <500. Условия, заданные в ячейке или, будут восприниматься как дополнительные.

Использование вычисляемого поля

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

Для отображения окна построителя выражений (рис. 24.12) выполните следующие действия:

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

Рис. 24.12 Построитель выражений

В верхней части диалогового окна построителя выражений расположено поле, отображающее выражение по мере его создания. Access часто помещает в это поле прототипы, заключенные в двойные угловые кавычки, вместо которых пользователь должен подставить нужные элементы. Следует либо ввести соответствующее значение, либо выделить прототип, и заменить его на элемент из правого списка.
В средней части окна построителя находится раздел, предназначенный для создания элементов выражения. В нем расположены кнопки с часто используемыми операторами. При нажатии на одну из этих кнопок построитель вставит соответствующий оператор в текущую позицию поля выражения. Например, вы можете нажать кнопку Like , чтобы не вводить это слово с клавиатуры.
В нижней части окна построителя находятся три поля. В левом поле выводятся папки, содержащие таблицы, запросы, формы, объекты базы данных, , встроенные и определенные пользователем функции, константы, операторы и общие выражения. В среднем поле задаются определенные элементы или типы элементов для папки, заданной в левом поле. В правом поле выводится список значений (если они существуют) для элементов, Например, если выбрать в левом поле Встроенные функции, то в среднем поле появится список всех типов функций Microsoft Access, в правом поле будет выведен список всех встроенных функций, заданных левым и средним полями.
Чтобы вывести полный список операторов, выберите папку Операторы в нижнем левом поле и нужный тип в среднем поле. В правом поле будут выведены все операторы выбранного типа. Возможен непосредственный ввод части выражения в верхнее поле.
Для возвращения в бланк запроса нажмите кнопку ОК, Построенное выражение будет вставлено в то поле, где расположен курсор. Имена полей при вводе в бланк запроса следует заключить в квадратные скобки

Fore kc .ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий

Информационные технологии. 10 класс (Базовый уровень)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Выбираются записи, у которых значение в этом поле не равно 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).

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *