Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб№6_Access.doc
Скачиваний:
1
Добавлен:
20.04.2019
Размер:
461.82 Кб
Скачать

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

Для того чтобы сформировать условие отбора, можно использо­вать Построитель выражений. Правой кнопкой мыши щелкните в строке Условие отбора на бланке запроса, выберите строку Построить.

То же самое можно сделать, нажав кнопку на панели инструмен­тов. Раскроется окно

Окно построителя имеет четыре области со своими полосами прокрут­ки. В верхней области располагается создаваемое выражение. Три нижние используются для выбора элементов. Левая область содержит спи­сок всех источников данных для запроса. Ими могут быть объекты БД Access: таблицы, запросы, формы и т.д. Кроме того, в левый список включены папки, содержащие функции, константы и операторы, кото­рые могут быть использованы в выражении. Средний список служит для показа элементов, входящих в выбранный объект из левого списка. Например, если у Вас в левой области указано имя таблицы магазины Запрос, то средний список будет содержать имена ее полей. Правый список служит для выбора самых примитивных объектов, для того что­бы перенести имя объекта в выражение, нужно два раза щелкнуть имя объекта в одном из нижних списков. Кнопка Назад позволяет отменить ввод данных в выражение. Текст выражения можно редактировать и обычным способом.

При составлении выражений необходимо знать некоторые прави­ла. Выражение всегда имеет логический тип (то есть в любом случае его значение должно быть Да или Нет). Имена объектов и полей заклю­чаются в квадратные скобки, символьные скобки — в кавычки, даты — в знаки #. Имя объекта базы данных отделяется от имени поля вос­клицательным знаком. Например: Магазины!директор.

Рассмотрим теперь на примерах, зачем нужен построитель выра­жений. Допустим, Вы хотите вывести на экран всех директоров, фами­лии которых начинаются с буквы "П". Для этого вызовите построитель из поля Директор, в верхнем поле напишите П*. Нажмите кнопку ОК. Перейдите в режим таблицы. Символ * обозначает любую последова­тельность символов.

Допустим, Вы хотите увидеть на экране сведения про всех дирек­торов, кроме Иванова. Вы вызываете на экран Построитель выраже­ний, щелкаете по кнопке Not, пишете Иванов, нажимаете на ОК, затем переходите в режим таблицы. На экране — нужные сведения.

Выведите на экран сведения про всех директоров, кроме Петрова. Покажите преподавателю.

Какие еще функции можно использовать?

Between And — заменяет знаки "больше или равно*' и "меньше или равно" . Например, Between 44 And 67 эквивалентно условию >=44 And <=67.

Оператор In позволяет использовать списки значений. Например, выражение In ("Петров";"Сидоров") позволяет отобрать записи с ука­занными фамилиями. Попробуйте вывести на экран записи, касающиеся Иванова и Сидорова.

Выражение Not Null используется для отбора непустых записей в указанном поле.

Выражение Is Null используется для отбора пустых записей в ука­занном поле.

\ — Обратная косая черта обозначает деление целых частей дели­мого и делителя. Результат округляется до целого. Например, 5\2=2.

^ — обозначает операцию возведения в степень. Например, 32=9.

Mod — Операция получения остатка от деления целых частей ар­гументов.

& — Знак используется для "сложения" данных символьного типа. Дня соединения строк можно использовать и плюс. Например, следую­щие три выражения эквивалентны:

"Петров "

"Петр "&"ов"

"Петр"+"ов"

Оператор Like используется для создания масок при определении строк с неизвестными символами и требует дополнительных специаль­ных символов:

* Любая последовательность символов. Например, П* — Пет­ров, Попов, Пол и т.д.. В слове может быть любое количество любых символов, но первая буква слова непременно будет П.

? любой единичный символ. Например, П?л — это Пол или Пел, или Пул, но в слове ровно три буквы и две из них известны.

# любая неизвестная цифра, например, 12#45 — в этой последо­вательности цифр ровно одна цифра неизвестна.

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

В поле построителя выражений введете следующий текст: [Дирек­тор] Like "П*"

нажмите, кнопку ОК, перейдите в режим таблицы. У Вас должно полу­читься

Выведем на экран сведения о директорах, в фамилии которых есть бук­ва "р". Для этого в построителе выражений напишите [Директор] Like "*р*", далее все проделайте самостоятельно. Результат покажите препо­давателю.

Операторы "меньше" и "больше" могут использоваться не только с числовыми данными, но и с датами или текстом. Применительно к тек­стовым строкам они позволяют отбирать записи, предшествующие ука­занной строке или следующие за ней. В этих случаях учитывается алфа­витный порядок.

В поле построителя выражений введите [Директор]>"Иванов". До­делайте самостоятельно, результат покажите преподавателю.

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

Войдите во вкладку Запросы. Щелкните по кнопке Создать, выберите режим Конструктор. Откроется окно

Выберите в этом окне Клиенты. Нажмите на кнопку Добавить. Раскроется окно Конструктора запросов, в верхнем окне которого будет таблица Клиенты. Нажмите кнопку Закрыть.

Выведем на экран только поля Название, Должность, Город, Страна, Телефон. Это можно сделать тремя способами:

1. Щелкните в нижней части бланка запроса в строке Поле, появится кнопка со стрелкой. Щелкните по ней, в раскрывшемся списке выберите Название, щелкните. При этом в строке Имя таблицы автоматически появится название таблицы (в нашем случае Клиенты) и в строке Вы­вод на экран появится флажок.

2. Введем вторым способом второе поле. Выберите в списке в верхней части поля Должность, нажмите левой кнопкой мыши и, не отпуская, перетащите в нужное поле в нижнюю часть бланка. Отпустите кнопку.

3. Выберите в списке в верхней части Город, дважды щелкните по нему.

Самостоятельно введите Страну и Телефон. Запустите запрос на выполнение.

Допустим, Вы решили убрать поле Телефон с экрана. Перейдите снова в режим конструктора запросов, отключите флажок в строке Вы­вод на экран в поле Телефон. Снова запустите запрос.

Сейчас проделаем ту работу, которую Вы делали с таблицей Кли­енты в работе №3. Все условия точно в таком же виде надо писать либо в строке Условие отбора в нижней части окна бланка запроса, либо в Построителе выражений. Проделайте самостоятельно, результат пока­жите.

Отфильтруйте в таблице Клиенты всех из Германии; из Германии или Мексики, из Германии или Мексики или Буэнос-Айреса (город).

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

На экран будут выведены только записи, касающиеся стран, назва­ния которых начинаются с этой буквы.

Выведите на экран все записи из таблицы Клиенты, в которых на­звание в поле Город начинаются с букв Б, В, Г, Д. Для этого в строке Условие отбора напишите оператор

Like"[Б-Д]*"

Запустите запрос на исполнение. Напишите теперь оператор Like "[БД]*", запустите запрос. Что изменилось?

Запишите там же AND . Что получилось? Возможно, этот оператор проще писать в построителе выражений, попробуйте.

Так же, как в фильтрах, в запросах есть возможность конструкции ИЛИ. Например, если в строке Условие отбора в поле Город Вы на­пишите Г*, а ниже, в строке или В*, то на экран выйдут все записи, в которых названия городов начинаются с букв Г и В. Можно то же самое сделать в одной строке Условие отбора, если написать оператор Г* OR В*. Проделайте это.

Наконец, есть аналог команде Исключить выделенное. Если в Поле Страна в строке Условие отбора Вы напишите Not Г*, то на экран выведутся все страны, кроме тех, название которых начинается с этой буквы. Можно написать также <>Германия. Попробуйте.

Иногда возникает необходимость сделать свой запрос таким, что­бы с ним могли работать люди, совсем не знающие Access. Если в стро­ке Условие отбора ввести следующую запись:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]