Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Praktikum_2008

.pdf
Скачиваний:
270
Добавлен:
06.06.2015
Размер:
8.23 Mб
Скачать

ми командами существует различие. Первая – полностью удаляет фильтр. Вторая только отключает его. В этом случае этот фильтр можно использовать многократно.

Способ фильтрации «по значению» рассмотрите самостоятельно. Для его использования надо выделить столбец, щелкнуть на треугольнике в названии столбца. Откроется ДО отбора значений полей. Выделите нужные значения и нажмите «ОК».

Использование расширенного фильтра.

Фильтр данного вида используется для быстрого построения условий отбора записей при использовании нескольких критериев и полей (при использовании логических выражений).

Замечание.

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

Допустим, мы хотим отобрать и распечатать записи по культурам, для которых почва должна иметь слабокислую, нейтральную или близкую к ней реакцию с рН от Р1 = 5,6 до Р2 = 7,2 (Р1 и Р2 — условные обозначения, которые мы используем в постановке данной задачи). Из методических соображений потребуем, чтобы нормативный диапазон, т.е. соответствующие значения полей «Почвы1» («Почвы_от») и «Почвы2» («Почвы_до»), полностью включал в себя заданный. Таким образом, критерий отбора будет иметь следующий вид: если (Почвы1 >= P1) И (Почвы2<= P2), то данная запись удовлетворяет нашему условию.

Используем для решения данной задачи «Расширенный фильтр».

Откройте таблицу «Культуры» и удалите фильтры, если они не удалялись.

Введите команду «”Главная” / раздел “Сортировка и…” / кн. “Параметры расш. фильтра” / команда “Расширенный фильтр”». Откроется специальное ДО (см. рис. 4.14) с бланком запроса (на рисунке отображается состояние окна после определения условий).

Изучите состояние окна. В верхней части расположено окошко с перечнем полей таблицы «Культуры». В нижней

221

– окно бланка для построения запроса. В бланке находятся строки: «Поле», «Сортировка», «Условия отбора» и множество строк типа «Или». В ячейках «Поле» должны быть указаны имена полей, участвующих в логических выражениях и для сортировки отображаемой таблицы (результата выполнения запроса).

Если в бланке остались данные от предыдущего фильтра, то нажмите ПКМ и введите команду «Очистить бланк».

В строку «Поле», используя открывающиеся списки, включите поля: «Почвы1», «Почвы2», «Код_Гр» и «Код_культ» Установите для последних полей сортировку «по возрастанию».

Рис. 4.14. Окно конструктора расширенного фильтра

Установите для полей «Почвы1» и «Почвы2» критерии отбора записей в строку «Условие отбора». Для «Почвы1» введите (без кавычек) «>=5,6», для «Почвы2» введите

«<=7,2».

222

Рис. 4.15. Результат выполнения расширенного фильтра

Выполните фильтрацию и оцените результат (см. рис. 4.15). Если этот фильтр надо сохранить, то щелкните ПКМ на заголовке вкладки и введите команду «Сохранить» и далее укажите имя фильтра.

Удалите фильтр (физически он остается до создания следующего фильтра). Закройте таблицу.

§ 10. Создание и выполнение запросов на выборку данных

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

Предыдущие способы фильтрации обладают существенными ограничениями:

-фильтр может работать только с одной таблицей;

-выводятся все столбцы таблицы;

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

При использовании запросов можно:

223

-использовать более одной таблицы;

-сформировать таблицу запроса с использованием только необходимых полей;

-располагать поля в необходимой последовательности.

-ограничить количество исходных записей;

-использовать вычисляемые поля.

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

Конструирование запроса.

Пусть нам необходимо получить (и распечатать) справочную информацию по двум группам культур : «Деревья» и «Кустарники» со сроком созревания после «07.18».

При отображении таблицы после выполнения запроса мы не будем включать поля с фактическими данными (поля «Урожай» и «Кол-во»), но добавим вычисляемое поле «Урож-ть» (характеризует урожайность культуры), значение которого вычисляется следующим образом: «Урож-ть» = «Урожай» / «Кол–во». Поля с кодом группы и кодом культуры будут использованы только для отбора записей, но выводиться на экран не будут. Вместо кода группы будет выводиться ее обозначение из таблицы «Группы». Запрос будем создавать на основе двух наших таблиц.

Закройте все таблицы. На вкладке «Создание» в разделе «Другие» щелкните на кн. «Конструктор запросов». Система выведет на экран окно конструктора и на его фоне ДО «Добавление таблицы». Если верхнее поле конструктора содержит окошки таблиц с установленными связями, то добавлять таблицы не надо, иначе в этом ДО последовательно выберите обе наши таблицы (выделить и нажать кн. «Добавить»). Закройте ДО добавления таблиц. В результате мы попадаем в конструктор. В главном меню появилась

вкладка «Конструктор» Окно конструктора состоит из двух частей (см. рис. 4.16):

-в верхней части находятся окошки таблиц с перечнем полей;

-в нижней части — бланк конструирования запроса.

224

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

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

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

При переводе указатель мыши превращается в прямоугольник.

Переведите в строку «Поле» бланка: из таблицы «Группы» поле «Обозн»; из таб. «Культуры» поля: «Назв_к», «Созр1», «Созр2», «Почвы1», «Почвы2», «Ед_измер».

«Код_Гр», «Код_Культ» (два последних поля будут после создания вычисляемого поля перемещены см. рис. 4.16)

Замечания

1.Если вы ошиблись при определении поля в бланке, то выделите это поле в соответствующем столбце бланка и удалите кн. Delete. После этого повторите определение поля заново.

2.Если вы не сохраняли запрос и не дали ему имя при закрытии (даже то, которое предлагает система), то после выхода из системы запрос будет потерян.

3.Поля, выводимые в наборе записей запроса, наследуют свойства, заданные в исходной таблице, но вы можете переопределить некоторые из них: «Описание», «Формат поля», «Маску ввода», «Подпись». Чтобы задать новые свойства некоторого поля, выделите его в бланке и введите команду «Свойства», используя контекстное меню или команду «Страница свойств» из раздела «Показать или скрыть» . На экране появится окно свойств, где необходимо указать необходимые свойства.

Создадим вычисляемое поле «Урожайность».

Установите курсор в клетку «поле» нового столбца введите арифметическое выражение: Урож-ть:[Культуры]![Урожай]/[Культуры]![Кол–во], где «Урож-ть» – условное название нового поля. После знака

225

равенства записано арифметическое выражение (на языке системы), определяющее частное от деления значения поля «Урожай» на значение поля «Кол–во» из таблицы «Культуры». Мы указываем имя таблицы «Культуры» явно, т.к. не включили соответствующие поля в бланк запроса.

Переместите при помощи мыши вычисляемое поле влево (рис. 4.16) и включите его отображение на экране.

Рис. 4.16. Окно конструктора запросов с условиями.

Для проверки правильности построения запроса на данном этапе сначала сохраните запрос с именем «Запрос1» (кн. «Сохранить» на панели быстрого доступа). Выполните запрос: кн. «Выполнить» в разделе «Результаты». Оцените свои построения и обратите внимание на заголовок и значения вычисляемого поля. Если заметили ошибку, удалите выражение и введите еще раз, соблюдая правильный ввод имен таблицы, полей и знаков.

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

Для изменения свойств поля «Урож-ть» откройте ДО свойств поля. Щелкните ПКМ на поле и в меню выберите пункт «свойства». Откроется окно свойств:

226

На вкладке «Общие» установите: «Формат» = «фиксированный»; «Число дес. знаков» = 1; «Подпись» = «Урожайность» (без кавычек). Закройте ДО и еще раз проверьте результат изменений в режиме таблицы. Вернитесь в конструктор.

На следующем шаге надо определить, какие поля будут отображаться в таблице и по каким полям следует проводить сортировку.

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

Отключите вывод на экран кода группы (поле «Код_Гр») и кода культуры («Код_культ»).

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

Укажите в строке «Сортировка» упорядочение в возрастающем порядке по полям «Код_Гр» и «Код_культ».

Перед выполнением следующих упражнений сохраните запрос. В дальнейшем выполняйте эту операцию регулярно.

Замечание.

Если вы закроете запрос и опять откроете, то неотображаемые поля в бланке будут смещены вправо и помещены после поля «Урож-ть».

227

Конструирование критерия отбора записей.

Критерий формируется заданием условий на значения полей таблицы. Ввод условия (логического выражения) аналогичен заданию условия на значение для поля таблицы при ее создании.

Логические выражения.

Условие, или, более правильно, логическое выражение

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

В общем виде, простейшее ЛВ можно записать так: В1 ОП В2, где В1 и В2 — выражения числового или текстового типа или поля таблицы (В1 и В2 называются операндами); ОП — операция сравнения из множества: { = — равно, > — больше, < — меньше, >= — больше или равно, <= — меньше или равно, <> — не равно}.

Более сложные ЛВ формируются с помощью логических операторов:

-AND (And) — логическое «И»;

-OR (Or) — логическое «ИЛИ».

Выражение A AND B имеет значение «Истина», только в том случае, если и А и В имеют истинное значение. Во всех остальных случаях значение выражения — «Ложно».

Выражение A OR B имеет значение «Ложно» только тогда, когда ложны значения обоих операндов (А и В).

Вид логического выражения, которое используется в условиях отбора записей, немного отличается от общего. Дело в том, что в качестве одного из операндов (обычно В1) выступает поле таблицы. Поэтому выражение получается «укороченным». Например, если надо отобрать записи, соответствующие огородным культурам (двухлетним и однолетним), то в соответствующей строке бланка поля «Код_Гр» необходимо записать условие (без кавычек): « = 4 Or = 5».

Пример 1. Введите условие « = 4 Or = 5». в соответствующую строку поля и выполните запрос.

Оцените действие команды и вернитесь в режим конструктора. Удалите условие (сотрите его кл. «Delete»).

228

Если в условие отбора включается несколько полей и все ЛВ (для каждого поля) находятся в одной строке, то все они объединяются логической операцией AND. Запись отбирается в запрос, если значение всего ЛВ принимает значение «Истина».

Пример 2. Выполним отбор записей, соответствующих первой группе («Деревья») со сроком созревания от 08.01 и pH>=5,5.

Для этого введите следующие условия (все условия вводятся без кавычек): в поле «Код_Гр» условие «=1», в поле «Созр1»

— условие «>=08.01», в поле «Почвы1» — условие «>=5,5». Выполните запрос. Оцените результат. Сотрите условия в бланке запроса.

Если для поля задается несколько условий, объединенных операцией «ИЛИ» (OR), то каждое условие записывается в отдельную строку «ИЛИ» бланка.

Пример 3. Установите первое условие, используя второй способ: в первую строку «Условие отбора» введите (для поля «Код_Гр») «=4», а во вторую строку («ИЛИ») — условие «=5». Выполните запрос, оцените результат и удалите условия из бланка.

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

Например, если необходимо отобрать записи с культурами, у которых значения поля «Почвы от» («Почвы1») находятся в диапазоне от 5,6 до 6,2, то мы должны ввести условие «>=5,6 And <= 6,2».

Введите это условие и выполните запрос. Удалите условие.

Основной запрос

Сформируем условия отбора для исходного запроса.

По полю «Код группы» («Код_Гр») мы должны отобрать записи со значениями равными 1 или 2.

Поле «Срок созревания от...» («Созр1») — текстовое. Нижняя граница, определяющая условие отбора может быть записана в виде «>=07.18».

Полное логическое выражение, соответствующее нашему случаю, будет иметь вид:

229

(Код_Гр =1 OR Код_Гр =2) AND (Созр1>= 07.18).

Из методических соображений мы преобразуем его к виду: (Код_Гр=1 AND Созр1 >= 07.18) OR (Код_Гр=2 AND Созр1

>= 07.18).

Введем условия в бланк запроса:

в соответствующей строке поля «Код_Гр» укажите «=1» и

в поле «Созр1» >=07.18;

перейдите в строку «ИЛИ» и укажите в соответствующих полях «=2» и «>=07.18».

Выполните запрос. Результат представлен в таблице 4.10.

Запрос сохраните.

Обратите внимание, что данная таблица перенесена в Word стандартным способом: выделяем таблицу в Access, затем в контекстном меню выбираем команду «копировать», переходим в Word и вводим команду «Вставить».

Замечание.

При такой вставке таблицы в Word возможны некоторые изменения в отображении количества десятичных знаков. Это связано с настройкой самого текстового редактора.

Таблица 4.10. Результат выполнения запроса на выборку

Запрос1

Обозн.

Название

Созр.

Созр.

Почвы_от

Почвы_до

Ед_измер

Урожай

Гр.

 

от

до

 

 

 

ность

ДЕР.

Вишня осенняя

07.20

08.10

5,80

6,30

Дер.

5,00

ДЕР.

Груша осенняя

09.20

09.15

5,40

6,20

Дер.

5,00

ДЕР.

Яблоня зимняя

09.25

10.10

5,50

6,00

Дер.

20,00

ДЕР.

Яблоня летняя

08.01

08.25

5,50

6,00

Дер.

15,00

ДЕР.

Яблоня осенняя

09.10

09.20

5,50

6,00

Дер.

7,50

КУСТ.

Смородина чер

07.20

07.25

5,60

6,00

Куст.

2,00

 

ная

 

 

 

 

 

 

 

 

 

 

 

 

 

 

230

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