Допустим, необходимо выбрать имена, фамилии сотрудников и наименования клиентов, у которых дата исполнения заказов превышает дату размещения на 20 дней и, кроме того, индекс начинается с буквы "S". Для этого добавьте в новый запрос таблицы Заказы, Клиенты и Сотрудники. Microsoft Access автоматически свяжет поля КодКлиента таблиц Клиенты и Заказы и поля КодСотрудника таблиц Заказы и Сотрудники, поскольку обе связи существуют на уровне базы данных (постоянные связи). В первом пустом поле бланка запроса (в строке Поле введите текст: Сотрудник: [Фамилия] & " " & [Имя] и установите порядок сортировки по возрастанию. Далее, добавьте в бланк поле Название из таблицы Клиенты и также установите для него порядок сортировки по возрастанию. В определение третьего поля введите строку: Дни: [ДатаИсполнения]-[ДатаРазмещения] и установите для него условие: >20. Последнее, что необходимо сделать — добавить в макет запроса поле Индекс из таблицы Клиенты, снять для него флажок Вывод на экран и добавить условие отбора Like "S*". Полученный запрос представлен на рис. 2.3 (режим конструктора, режим таблицы и SQL-оператор ).
|
|
Рис 2.3. Запрос, использующий вычисляемое поле
Пояснения
а). Для объединения значений полей Фамилия и Имя в поле Сотрудник используется операция конкатенации строк (&).
б). Оператор Like используется для проверки соответствия строки указанному шаблону. Полный синтаксис оператора Like:
результат — строка Like шаблон
Если строка соответствует шаблону, результатом будет Истина (True), иначе — Ложь (False). Если строка либо шаблон имеют значение Null (то есть, какое-либо значение отсутствует), то результат тоже будет иметь значение Null. Шаблон является строкой, которая кроме обычных символов, может содержать специальные символы. В таблице 2.1 приведено описание специальных символов, а в таблице 2.2 — примеры использования оператора Like.
в). Для того чтобы присвоить полю какое-нибудь имя, отличное от стандартных имен присваиваемых конструктором запросов автоматически, нужно ввести его в самом начале определения поля (в строке Поле) и указать после него двоеточие.
Таблица 2.1. Специальные символы, используемые с оператором Like
Символ | Описание |
? | Любой одиночный символ. |
* | Любое количество символов (от нуля и больше). |
# | Любая цифра (от 0 до 9). |
[A-Z] | Любой символ, попадающий в указанный диапазон |
[!A-Z] | Любой символ, не попадающий в указанный диапазон |
[A,D,H] | Любой символ из указанного списка. |
[!A,D,H] | Любой символ, не попадающий в указанный список. |
Таблица 2.2. Примеры использования оператора Like.
Пример | Результат | |
"aBBBa" | Like "a*a" | Истина (True) |
"F" | Like "[A-Z] | Истина (True) |
"F" | Like "[!A-Z]" | Ложь (False) |
"a2a" | Like "a#a" | Истина (True) |
"aM5b" | Like "a[L-P]#[!c-e]" | Истина (True) |
"BAT123khg" | Like "B?T*" | Истина (True) |
"CAT123khg" | Like "B?T*" | Ложь (False) |
"F" | Like "[A,X,F]" | Истина (True) |
"Z" | Like "[A,X,F]" | Ложь (False) |
|
|