Материал: 1945

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

В условиях отбора используют знаки сравнения: >, <, =, <>, >=, <=. Если в выражение не был включен оператор, то подразумевается, что был использован оператор «=».

Пример

Вывести на экран сведения о студентах, родившихся позднее 21.09.83, отсортировав записи по полю Фамилия. Окно конструктора запроса должно выглядеть в соответствии с рисунком (см. рис. 11).

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

Пример

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

Поле:

Фамилия

Номер группы

Дисциплина

Оценка

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

 

 

 

 

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

 

 

Физика

Отлично

Если выражения находятся в разных строках бланка запроса (т.е. используется строка «Или:»), то автоматически используется оператор Or. Это означает, что выведены будут записи, отвечающие любому из условий отбора.

Пример

Найти студентов, которые получили по физике «отлично» или по химии «хорошо».

Поле:

Фамилия

Номер группы

Дисциплина

Оценка

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

 

 

 

 

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

 

 

Физика

Отлично

Или:

 

 

Химия

Хорошо

46

Операторы сравнения

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

1.Not (не) – отрицание.

2.And (и) – условия должны выполняться одновременно.

3.Or (или) – хотя бы одно из условий должно выполняться.

4.Between (между) – позволяет задать диапазон значений.

Пример

Найти студентов, получивших по физике «отлично» или «хорошо».

Поле:

Фамилия

Дисциплина

Оценка

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

 

Физика

Отлично Or Хорошо

Пример

Найти студентов с фамилией Иванов, получивших оценку «хорошо» по любой дисциплине, кроме физики.

Поле:

Фамилия

Дисциплина

Оценка

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

Иванов

Not Физика

Хорошо

Пример

Найти студентов с фамилией Иванов, родившихся в период с 1 июня по 31 августа 1990 года, и студентов с фамилией Сидоров, родившихся в период с 1 января 1991 года по 1 января 1993 года.

Поле:

Фамилия

№ зачетки

Дата рождения

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

Иванов

 

Between 01.06.90 and 31.08.90

Или:

Сидоров

 

>=01.01.91 and <=01.01.93

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

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

Для создания запроса с параметром необходимо:

1. Создать запрос на выборку, добавить в него нужные поля.

47

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

Пример

Найти студентов с заданной фамилией, родившихся ранее заданной даты.

Поле:

Фамилия

Дата рождения

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

[Введите фамилию]

<[Введите дату]

Вычисления в запросе

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

1. Установить курсор в нужное место (при создании вычисляемого поля установить курсор в строке «Поле» в пустом столбце бланка запроса).

2.Запустить построитель выражений, нажав кнопку Построить (Build) на панели инструментов.

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

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

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

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

инажать кнопку OK.

48

Рис. 12. Окно построителя выражений

Пример

Создать запрос, начисляющий доплату 50 % от оклада всем сотрудникам, родившимся ранее 1 января 1952 года или имеющих оклад менее 400 рублей.

После создания выражения следует изменить имя вычисляемого поля «Выражение1» на «Доплата».

Поле:

Дата рождения

Оклад

Доплата:[Сотрудники]![Оклад]*0,5

Условие

<01.01.52

 

 

отбора:

 

 

 

Или:

 

<400

 

 

Встроенные функции Microsoft Access

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

1.Функции даты и времени:

Date() – возвращает текущую системную дату;

Day(дата) – возвращает день указанной даты;

Month(дата) – возвращает номер месяца указанной даты;

Year(дата) – возвращает год указанной даты.

2.Текстовые функции:

InStr(начало; строка1; строка2; код) – возвращает номер первой позиции, начиная с которой одна строка (строка2) содержится в другой строке (строка1). Аргумент «начало» указывает, начиная с какой позиции начать поиск, аргумент «код» указывает метод сравнения (0 – учитывая регистр, 1 –

49

не учитывая регистр). Если строка не найдена, то значение функции равно нулю;

Left(строка; число) – возвращает заданное число символов строки слева;

Right(строка; число) – возвращает заданное число символов строки справа;

Len(строка) – возвращает длину строки.

3.Функции управления и проверки:

IIf(условие; выражение1; выражение2) – возвращает зна-

чение первого выражения, если условие истинно, в противном случае – значение второго выражения.

4.Статистические функции:

Avg(выражение) – вычисляет среднее арифметическое;

Count(выражение) – вычисляет количество записей;

Sum(выражение) – вычисляет сумму значений;

Max(выражение) – вычисляет максимальное значение;

Min(выражение) – вычисляет минимальное значение.

Пример

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

день рождения студента, а затем проверить этот день.

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

Поле:

№ зачетки

Выражение1: Day([Студенты]![Дата рождения])

Вывод на

 

 

экран:

 

 

Условие

 

<=15

отбора:

 

 

Пример

Найти студентов, достигших определенного возраста.

Поле: Выражение1: Year(Date())-Year([Студенты]![Дата рождения])

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

Условие >=[Введите возраст] отбора:

Пример

Найти студентов, фамилии которых начинаются на букву «С».

50