2000 году. Для этого необходимо указать условие отбора, отсеивающее все записи, кроме тех, у которых в поле «Год поступления» указано «2000».
Условие отбора записей вводится в строке Условие отбора в столбце, соответствующем полю, значение которого проверяется.
|
Таблица 2 |
Назначение строк бланка запроса в режиме конструктора |
|
|
|
Строка |
Назначение |
Поле: |
Для выбора полей, которые должны присутствовать в запросе и по |
|
которым вы хотите проверить условия или выполнить сортировку |
Имя таблицы: |
Отображает имя таблицы, из которой выбрано соответствующее |
|
поле |
Сортировка: |
Можно установить порядок сортировки записей для одного или |
|
нескольких полей |
Вывод на экран: |
Флажками помечаются те поля, которые должны быть выведены |
|
на экран при выполнении запроса |
Условие отбора: |
Для ввода условия, которое вы хотите использовать в качестве |
|
фильтра |
Или: |
Используется тогда, когда сложное условие в запросе состоит из |
|
нескольких условий, которые должны выполняться не |
|
одновременно |
Пример
Запрос: вывести на экран сведения о студентах, родившихся позднее 21.09.83, отсортировав записи по полю Фамилия. Окно конструктора запроса должно выглядеть в соответствии с рисунком (см. рис. 9). Результат выполнения запроса выглядит следующим образом (рис. 10):
Рис. 10. Результат выполнения запроса
Для одного поля или для нескольких полей можно ввести дополнительные условия отбора. Если выражения находятся в разных ячейках, но в одной строке бланка запроса, то автоматически используется оператор And для связи этих условий. Это означает, что будут выведены только те записи, которые отвечают всем условиям отбора одновременно.
26
Пример
Запрос: составить список всех студентов, которые по физике получили пятерки. Бланк запроса может выглядеть следующим образом:
Поле: |
Фамилия |
Имя |
Номер группы |
Дисциплина |
Оценка |
Вывод на экран: |
|
|
|
|
|
Условие отбора: |
|
|
|
Физика |
5 |
Если выражения находятся в разных строках бланка запроса (т.е. используется строка «Или:»), то автоматически используется оператор Or. Это означает, что выведены будут записи, отвечающие любому из условий отбора.
Пример 1
Найти студентов с фамилией Иванов или Сидоров.
Поле: |
Фамилия |
Имя |
Номер группы |
Вывод на экран: |
|
|
|
Условие отбора: |
Иванов |
|
|
Или: |
Сидоров |
|
|
Пример 2
Найти студентов, которые получили по физике «отлично» или по химии «хорошо».
Поле: |
Фамилия |
Номер группы |
Дисциплина |
Оценка |
Вывод на экран: |
|
|
|
|
Условие отбора: |
|
|
Физика |
5 |
Или: |
|
|
Химия |
4 |
Пример 3
Найти студентов, получивших по физике «отлично» или «хорошо».
Поле: |
Фамилия |
№ зачетки |
Дисциплина |
Оценка |
Условие отбора: |
|
|
Физика |
5 Or 4 |
Пример 4
Найти студентов с фамилией Иванов, родившихся ранее 1 января 1986 года, и студентов с фамилией Сидоров, родившихся в период с 1 января 1982 года по 1 января 1984 года.
Поле: |
Фамилия |
№ зачетки |
Дата рождения |
Условие отбора: |
Иванов |
|
<01.01.86 |
Или: |
Сидоров |
|
>=01.01.82 and <=01.01.84 |
27
Операторы сравнения
В условии отбора можно использовать операторы сравнения. Рассмотрим основные из них.
Not (не) – отрицание.
Пример
Not(Иванов)
And (и) – условия должны выполняться одновременно.
Пример
>100 And <400
Or (или) – хотя бы одно из условий должно выполняться.
Пример
Иванов Or Сидоров
Between (между) – позволяет задать диапазон значений.
Пример
Between 10 and 30
In (в) – позволяет задать используемый для сравнения список значений.
Пример
In (1,3,5,7,9)
Like – для поиска образцов текста. В образец поиска можно включать символы шаблона ? ! * - # [ ] (табл. 3).
|
|
|
|
|
Таблица 3 |
|
|
|
|
Символы шаблона |
|
|
|
|
|
||
Знак |
Использование |
|
Пример |
||
* |
Соответствует |
любой |
последова- |
пр* – поиск слов при, привет, |
|
|
тельности цифр или |
символов. |
примечание |
||
|
Может использоваться в качестве |
*ов – все слова, заканчивающиеся на |
|||
|
первого или последнего |
символа |
ов |
||
|
текстовой строки |
|
|
|
|
? |
Соответствует |
одному |
любому |
B?ll – поиск слов ball, bell и bill |
|
|
текстовому символу |
|
|
К?т – поиск слов кот, кит |
|
[ ] |
Соответствует |
любому |
одному |
B[ae]ll – поиск слов ball и bell, но не |
|
|
символу из заключенных в скобки |
bill |
|||
|
|
|
|
|
Ст[оу]л – поиск слов стол, стул |
! |
Соответствует |
любому |
одному |
b[!ae]ll – поиск слов bill и bull, но не |
|
|
символу, кроме заключенных в |
bell или ball |
|||
|
скобки |
|
|
|
|
- |
Соответствует любому символу из |
b[a-c]d – поиск слов bad, bbd и bcd |
|||
|
диапазона. Необходимо указывать |
|
|||
|
этот диапазон по возрастанию (от |
|
|||
|
A до Z, но не от Z до A) |
|
|
|
|
# |
Соответствует любой цифре |
1#3 – поиск значений 103, 113, 123, |
|||
|
|
|
|
|
133, 143, 153, 163, 173, 183, 193 |
28
Пример
Like “?[a-k]d[0-9]*” – первый символ любой, второй символ – буква от a до k, третий символ d, четвертый символ – цифра от 0 до 9, далее произвольная последовательность любых символов.
Примечания:
При использовании подстановочных знаков для поиска символа звездочки (*), вопросительного знака (?), знака номера (#), открывающей квадратной скобки ([) или дефиса (-) необходимо заключать эти символы в квадратные скобки. Например, для поиска вопросительного знака следует задать образец поиска [?].
Невозможно выполнить поиск пары квадратных скобок (открывающей и закрывающей [ ]), поскольку эта комбинация символов интерпретируется в Microsoft Access как пустая строка.
Кроме операторов сравнения, описанных выше, в условиях отбора используют и знаки сравнения (>, <, =, <>, >=, <=).
Пример
>=09.05.85
>=100 and <=200 (это выражение соответствует оператору Between 100 and 200)
Запросы с параметром
До сих пор мы вводили условия отбора непосредственно в бланк запроса в режиме конструктора. Однако вы не всегда можете решить на этапе создания запроса, какие именно значения нужно найти или эти значения каждый раз разные, но однотипные. Вместо этого можно включить в запрос параметр, тогда перед выполнением запроса Access каждый раз будет запрашивать у вас конкретные условия отбора.
Создание запроса с параметром
1.Создайте запрос на выборку.
2.В режиме конструктора запроса переместите с помощью мыши поля из списка полей в бланк запроса.
3.Для каждого поля, которое предполагается использовать как параметр, введите в ячейку строки Условие отбора текст приглашения, заключенный в квадратные скобки. Это приглашение будет выводиться при запуске запроса. Текст подсказки должен отличаться от имени поля, но может включать его.
Пример
[Введите фамилию студента]
29
Для поля, в котором отображаются даты, можно вывести приглашения [Введите начальную дату] и [Введите конечную дату] для определения диапазона отбираемых значений. Для
этого введите в ячейку строки Условие отбора выражение:
Between [Введите начальную дату:] And [Введите конечную дату:].
4.Для просмотра результатов нажмите кнопку Запуск на панели инструментов и введите значение параметра.
Пример
Найти студентов, сдавших определенный экзамен на оценку, больше заданного числа.
Поле: |
№ зачетки |
Фамилия |
Вид оценки знаний |
Дисциплина |
Оценка |
Условие |
|
|
Экзамен |
[Введи |
>[Введи |
отбора: |
|
|
|
дисциплину] |
оценку] |
Вычисления в запросе
Существует ряд вычислений, которые можно выполнить в запросе, например, найти сумму или среднее по значениям одного поля, перемножить значения двух полей.
Результаты вычислений, выводящиеся в поле, не запоминаются в базовой таблице. Вместо этого вычисления снова производятся всякий раз, когда выполняется запрос, поэтому результаты всегда представляют текущее содержимое базы данных. Обновить вычисленные результаты вручную невозможно.
Можно задать вычисления над полями таблицы и сделать вычисляемое значение новым полем в наборе записей, т.е. создать вычисляемое поле.
Для определения вычисляемого поля можно использовать встроенные функции Microsoft Access или выражения, создаваемые пользователем.
Результаты вычислений не обязательно должны отображаться в поле. Вместо этого их можно использовать в условиях отбора для определения записей, которые выбираются в запросе, или для определения записей, над которыми производятся какие-либо действия.
Выражение представляет комбинацию символов, идентификаторов, операторов и значений, дающую определенный результат.
Создание вычисляемых полей с помощью построителя выражений
1.Создать запрос, поместить в него нужные поля.
2.Установить курсор в пустом столбце бланка запроса в строке
Поле.
3.Нажать кнопку Построить на панели инструментов.
4.Создать выражение и нажать кнопку ОК.
30