Сортировка и фильтрация довольно частые в работе с таблицами операции, и программа Access позволяет их выполнять достаточно просто и быстро



Сторінка4/9
Дата конвертації16.04.2016
Розмір0.53 Mb.
1   2   3   4   5   6   7   8   9

Построение выражений


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

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

Все выражения запросов имеют единую общую структуру. Они содержат один или несколько операндов, которые могут быть константами (например, 123, или «США», или # 08/12/2004 #), идентификаторами (т.е. именами объектов Access), или функциями, разделенными одним или несколькими операторами. Операторы – это символы, которые объединяют некоторым образом операнды в единое выражение. В качестве примеров операторов можно привести знак сложения (+) или знак «больше чем» (>).

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


Использование операндов в выражениях критериев


Выражения критериев используют три типа операндов: константы, идентификаторы и функции.

Константы


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

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

“Канада”


“Менеджер по продажам”

“Билл” & “ “ & ”Клинтон”



Числовые константы – одна или последовательность из нескольких цифр, при необходимости сопровождаемых знаком (+ или -) или десятичной точкой, и представляющих числа.

Константы даты и времени – дата, время или их комбинация, ограниченная символами диеза (#).

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

Идентификаторы


В запросах Access идентификатором называют имя поля таблицы, с которой работает запрос. Идентификаторы в выражениях обрамляются квадратными скобками.

Функции


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

Sum ([НаСкладе])



Использование операторов в выражениях критериев


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

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


Эти операторы используются для сравнения значения поля с константой, результатом функции или со значением другого поля. В табл. 1 перечислены все операторы сравнения программы Access.

Таблица 1. Операторы сравнения программы Access

Оператор

Общая форма

Описание

=

= Значение

Проверяет, равно ли значение поля величине Значение

< >

< > Значение

Проверяет, не равно ли значение поля величине Значение

>

> Значение

Проверяет, больше ли значение поля величины Значение

>=

>= Значение

Проверяет, больше и равно ли значение поля величины Значение

<

< Значение

Проверяет, меньше ли значение поля величины Значение

<=

<= Значение

Проверяет, меньше и равно ли значение поля величины Значение

Для примера рассмотрим таблицу Товары. Эта таблица содержит поле НаСкладе (рис. 8). Для того чтобы запрос возвращал только те товары, которые отсутствуют на складе, в строку Условие отбора нужно добавить следующее выражение: =0.


Рис. 8. Чтобы узнать, какие из товаров отсутствуют на складе,

в поле критерия нужно добавить выражение =0




Рис. 9. Динамический набор данных, созданный запросом,

который показан на рис. 8



Обычно операторы сравнения используют для числовых полей и дат, однако они применимы и к текстовым полям. К примеру, если из таблицы Клиенты нужно получить список компаний, начинающихся с латинских букв “A”, “B” и “C” , к полю Название нужно применить критерий: < “D”.

Арифметические операторы


Арифметические операторы, перечисленные в табл. 2, предназначены для осуществления математических операций над полями.

Таблица 2. Арифметические операторы программы Access

Оператор

Общая форма

Описание

+

Значение1 + Значение2

Сложение величин

-

Значение1 - Значение2

Вычитание величины Значение2 из величины Значение1

- (унарный)

- Значение1

Изменение знака величины

*

Значение1 * Значение2

Умножение величин

/

Значение1 / Значение2

Деление величины Значение1 на величину Значение2

\

Значение1 \ Значение2

Деление величины нацело

^

Значение1 ^ Значение2

Возведение величины в степень

Mod

Значение1 Mod Значение2

Остаток от деления величины Значение1 на величину Значение2

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

>= [Продано 2005] * 1.1

Оператор Like


Если в некотором текстовом поле одно и то же слово используется в разных падежах, и нужно выбрать записи с вхождениями этого слова, на помощь придут подстановочные знаки. Существует два таких знака: вопросительный (?), который подставляется вместо любой группы символов, и звездочка (*), которая подставляется вместо любой группы символов. Эти символы используются в комбинации с оператором Like.

Таблица 3. Примеры использования оператора Like в выражениях

Оператор

Описание

Like “Re?d”

Будет соответствовать таким значениям полей: Read, Reed и т.п.

Like “M?”

Будет соответствовать таким значениям полей: MA, MD и т.п.

Like “R*”

Будет соответствовать значениям полей, начинающихся с буквы R

Like “*/12/2004”

Будет соответствовать значениям полей с датой в декабре 2004 г.

Оператор Between …And


Если нужно отобрать записи, в которых значение некоторого поля находится между двумя другими значениями, можно использовать оператор BetweenAnd. Для примера предположим, что из таблицы нужно выбрать все счета-фактуры, номера которых расположены между числами 123000 и 124000. В этом случае в поле критерия номера документа можно указать следующее выражение:

Between 123000 And 124000

Этот оператор можно использовать с числами, датами и даже с текстом.


Оператор In


Если нужно отобрать записи, в которых некоторое поле содержит одно из нескольких значений, используют оператор In. Для примера предположим, что из таблицы Клиенты нужно отобрать только тех заказчиков, которые находятся в Калифорнии, Техасе или штате Нью-Йорк. В этом случае в критерии поля штата можно записать выражение:

In (“CA”, “TX”, “NY”)

Оператор IsNull


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

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


Составные критерии и логические операторы


В большинстве критериев одно выражение ничего не решает. К примеру, в запросе, показанном на рис. 8, из таблицы Товары отбираются те товары, которых нет на складе. Это достигается добавлением в конструктор запросов поля НаСкладе и вводом для него критерия=0.

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


Ввод критерия And


Критерий And вводится в тех случаях, когда нужно отобрать записи, которые удовлетворяют одновременно двум или более выражениям. При вводе критерия выражение 1 and выражение 2 в динамический набор данных попадут только те записи, которые удовлетворяют обоим этим выражениям.

Предположим, что из таблицы Товары нужно отобрать только ту продукцию, которая отсутствует на складе (НаСкладе = 0) и еще не были перезаказаны (Ожидается =0). В данном случае в конструктор запроса нужно добавить оба этих поля и ввести в строке критерия в обоих из них выражение =0 (рис. 10).



Рис. 10. Когда в одной строке критерия вводятся одновременно два условия

для разных полей, создаётся критерий And

Ввод критерия Or


Критерий Or вводится в тех случаях, когда требуется отобразить только те записи, которые удовлетворяют первому или второму критерию. Если запись удовлетворяет хотя бы одному выражению (или обоим сразу), она попадает в результаты запроса; если же она не удовлетворяет ни одному выражению, в результаты она не попадёт. (Можно использовать более двух выражений, объединённых оператором Or. Независимо от общего количества выражений, запись попадает в динамический набор записей, если она удовлетворяет хотя бы одному из них.)

Пусть нужно отобрать продукты, которые накопились на складе в количестве более ста (НаСкладе >=100) или количество заказанных экземпляров, которых больше 100 (Ожидается >=100). В данном случае в конструктор запроса нужно добавлять оба этих поля, однако критерии вводятся на различных строках (именно поэтому ниже строки Условие отбора присутствует строка Или). (рис. 11)

При необходимости можно ввести критерий Or для одного поля. Предположим, что нужно отобрать те товары, которые отсутствуют на складе (НаСкладе=0) или запас которых больше 100 (НаСкладе>=100). Для настройки такого запроса в столбце поля НаСкладе в строке Условие отбора нужно ввести =0, а в строке Или – >=100.



Рис. 11. При использовании критерия Or для разных

полей их нужно

вводить на разных строках конструктора запроса.

Использование логических операторов


Логические операторы используются для объединения или изменения выражений True/False.

Таблица 4. Логические операторы программы Access

Оператор

Общая форма

Описание

And

Выражение1 And Выражение2

Выбирает запись, только если истинны одновременно оба выражения.

Or

Выражение1 Or Выражение2

Выбирает запись, если истинно хотя бы одно из выражений.

Not

Not Выражение1

Выбирает запись, если выражение ложно.

Xor

Выражение1 xor Выражение2

Выбирает запись, если истинно только одно из выражений.

Eqv

Выражение1 eqv Выражение2

Выбирает запись, только если выражения истинны или ложны одновременно.

Imp

Выражение1 imp Выражение2

Выбирает запись, если одновременно истинны выражение1 и выражение2, либо ложно выражение1.

Операторы And и Or позволяют в едином выражении создавать составные критерии.

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



Not “США” And Not “Канада” And Not “Мексика”

1   2   3   4   5   6   7   8   9


База даних захищена авторським правом ©shag.com.ua 2016
звернутися до адміністрації

    Головна сторінка