6371
.pdf60
которых полей. Ввод производится с клавиатуры в строку появляющегося диалогового окна.
В литературе приводятся примеры, когда параметр используется для выбора записей по полному соответствию значения поля. Например,
чтобы сразу выбрать туры определенного вида отдыха, надо задать усло-
вие на его выборку и при открытии запроса ввести "пляжный", "экскурси-
онный" или другое требуемое значение. Подобное использование данной возможности нерационально. Тот же результат можно быстро достичь, ис-
пользуя фильтр. В то же время для ввода нужного значения показателя на-
до помнить, какие значения записаны в соответствующем поле. Также при вводе может быть допущена опечатка, и тогда запрос вообще не сработает.
Более удачный пример приведен в [7]. В определенном запросе пе-
риодически изменяется некоторое числовое значение одного из полей, на-
пример, требование клиента к максимальной стоимости тура. В этом слу-
чае при выполнении запроса вводится называемая клиентом стоимость,
производится выборка тура и запрос закрывается до прихода следующего клиента.
При создании запроса с параметрами в режиме конструктора в строку "Условия отбора" вводится произвольный текст, заключенный в квадратные скобки. Этот текст является подсказкой, которая становится заголовком диалогового окна для ввода значения параметра.
Задание 3.5. Создать запрос на выбор пляжного тура в азиатскую страну, для которого ограничениями являются минимальное и максималь-
ное число дней и стоимость.
Порядок действий.
1.Открыть запрос "АзиатскийПляж2" в режиме конструктора.
2.Дать команду "Файл" – " Сохранить как…" ( в Access-2007 с по-
мощью кнопки Office) и сохранить запрос под именем "Параметры".
61
3. В поле "Стоимость" вместо <=1500 написать <=[введите макси-
мальную стоимость тура]. Выполнить запрос (для контроля). Вернуться в режим конструктора.
4. В поле "Продолжительность" заменить числа подсказками для ввода параметров. Вместо 7 написать [введите минимальную продолжи-
тельность тура], а вместо 12 написать [введите максимальную продолжи-
тельность тура]. В результате запись в поле "Продолжительность" должна принять следующий вид:
Between [введите минимальную продолжительность тура] And [вве-
дите максимальную тура].
5. Выполнить запрос. Далее закрыть его с сохранением.
3.6. Запросы на обновление (замену) и на удаление
При помощи запроса на обновление можно автоматически изме-
нить значение определенного показателя сразу во всей активной БД. При условии задания характеристики связи "Обеспечение целостности данных"
подобное изменение произойдет как в исходной таблице, так и в связан-
ной, а также в таблице (при ее наличии), для которой эта связанная являет-
ся исходной.
Задание. Поменять название одной из туристских фирм.
Порядок действий.
1. Дать команду "Создание запроса в режиме конструктора" (в Access-2007 – вкладка "Создание", группа "Другие", кнопка "Конструктор запросов").
2.В окне "Добавление таблиц" выбрать таблицу "Фирма".
3.Ввести в панель запроса поле "НазваниеФирмы".
4.Дать команду "Запрос" – " Обновление" (через главное меню или используя кнопку "Тип запроса" на панели инструментов). В Access-2007
62
команда "Обновление" находится в группе "Тип запроса" вкладки "Конст-
руктор. Работа с запросами".
5.В строке "Условие отбора" в панели запроса ввести с клавиатуры название одной из туристских фирм, присутствующее в таблице "Фирмы".
Встроку "Обновление" ввести новое название туристской фирмы.
6.Выполнить запрос. Сохранить его под именем "Обновление". По-
сле выполнения для проверки выполненного действия открыть запрос "Ту-
рыСведения".
Аналогично выполняется запрос на удаление одной или нескольких записей, только вместо запроса на обновление выбирается запрос на уда-
ление. Если несколько таблиц связаны между собой и заданы условия
"Обеспечение целостности данных", "Каскадное обновление связанных полей" и "Каскадное удаление связанных полей" (см. раздел 2.5), то изме-
нение или удаление записей происходит не только в исходной таблице, но и в связанной.
3.7. Запросы с выполнением арифметических расчетов
Запросы позволяют выполнять арифметические действия, членами которых могут быть как числа, так и значения из выбранных вычисляемых полей (имеющих тип данных, с которым можно проводить вычисления).
Для расчетов, а также выполнения других операций, необходимо составле-
ние выражений. В текст выражения могут входить следующие элементы. 1. Имена полей с указанием исходного компонента БД, к которому
относится определенное поле. Они выводятся в квадратных скобках, на-
пример [Валюта]![Курс]. Первым выводится имя таблицы, за ним, после восклицательного знака, имя поля.
2. Константы – постоянные элементы выражения. Текстовые кон-
станты заключаются в кавычки. Даты ограничиваются спереди и сзади
63
значком #, например, #01.01.08#. Числовые константы воспринимаются программой без ввода дополнительных кодов.
3. Операторы – знаки выполнения определенных действий, напри-
мер арифметических (сложение, вычитание и др.) или сравнения (больше-
меньше) – и функции. Последние с точки зрения использования в БД мож-
но рассматривать тоже как команды на совершение определенных дейст-
вий с заданными аргументами. По терминологии, принятой в информати-
ке, функции "возвращают значения" для задаваемых значений аргументов.
Теоретически можно ввести выражение в конструктор запроса с клавиатуры. На практике лучше этим не заниматься, а использовать по-
строитель выражений. Окно "Построитель выражений" открывается после щелчка правой кнопкой мыши на ячейке панели запроса в окне "Конструк-
тор запросов". Оно имеет вид, приведенный на рис. 5.
Для ввода в выражение имени поля надо выбрать в левом нижнем окне папку нужных компонентов БД, в ней выбрать нужный компонент,
далее в центральном нижнем окне выбрать из списка нужное поле и дваж-
ды щелкнуть мышью на его имени. Ввод функций, операторов и констант производится путем последовательной выборки в окнах нижней части по-
строителя выражений.
Задание А. Рассчитать стоимости туров в рублях с учетом текущего курса валют.
Стоимость в рублях равна стоимости тура в валюте, умноженной на курс валюты.
Порядок действий.
1. Открыть запрос "ТурыСведения" в режиме конструктора. Сохра-
нить его под именем "РасчетЦеныРуб".
2. В панели запроса поставить курсор в верхнюю ячейку пустого поля справа от ранее введенных полей. Нажать правую кнопку мыши и в быстром меню выбрать "Построить".
64
65
3. В левом нижнем окошке построителя выражений открыть папку "Таб-
лицы", затем открыть папку "Туры". Дважды щелкнуть на "Стоимость",
после чего в области ввода выражения появится имя названного поля и имя таблицы, в которой оно находится. Далее ввести знак умножения (*) с
клавиатуры или щелчком мыши на соответствующей кнопке для ввода операторов. Затем ввести в выражение поле "Курс" из таблицы "Валюта"
аналогично вводу предыдущего поля. Выражение в области ввода должно принять следующий вид:
[Туры]![ Стоимость]* [Валюта]![Курс].
Нажать "ОК".
4. Для лучшего восприятия информации изменить свойства создан-
ного поля запроса. Вызвать быстрое меню одной из ячеек поля на панели запроса, выбрать пункт "Свойства". Задать:
Формат поля – денежный;
Число десятичных знаков – 2
– подпись – ЦенаРуб. 5. Выполнить запрос.
Задание Б. Рассчитать цену одного дня для предлагаемых туров.
Цена одного дня тура в рублях равна стоимости тура, рассчитанной в предыдущем задании, деленной на продолжительность тура. Задание вы-
полняется аналогично предыдущему.
Порядок действий.
1. Открыть запрос "ТурыСведения" в режиме конструктора. Сохра-
нить его под именем "РасчетЦеныДня".
2-3. Аналогично предыдущему заданию зайти в окно построителя выражений и создать выражение [Туры]![ Стоимость]* [Валюта]![Курс].
66
4. Далее ввести знак деления (/) с клавиатуры или щелчком мыши на соответствующей кнопке для ввода операторов. Ввести в выражение поле "Продолжительность" из таблицы "Туры" аналогично вводу преды-
дущего поля. Выражение в области ввода должно принять следующий вид: [Туры]![ Стоимость]* [Валюта]![Курс]/ [Туры]![Продолжительность]
Нажать "ОК".
Примечание. Порядок выполнения арифметических действий в созданном выражении значения не имеет, в отличии от выражений, где присутствуют как действия сложения-вычитания, так и действия умножения-деления.
5. Для лучшего восприятия информации изменить свойства создан-
ного поля запроса. Вызвать быстрое меню верхней ячейки поля на панели запроса, выбрать пункт "Свойства". Задать:
–формат поля – денежный;
–число десятичных знаков – 2;
–подпись – ЦенаДня.
6. Выполнить запрос.
Возможны два варианта сохранения результатов расчетов запросов
сарифметическими действиями.
1.Используется запрос на выборку. Для ввода результатов отводит-
ся отдельный пустой столбец. В него в режиме конструктора вводится арифметические выражение и после выполнения запроса записываются результаты вычислений. Исходные компоненты БД не изменяются.
2. Используется запрос на обновление. В одном из исходных ком-
понентов заранее создается поле для записи результатов расчетов. В него в режиме конструктора вводятся арифметические выражения и после вы-
полнения запроса записываются результаты вычислений. При выполнении запроса программа запрашивает подтверждение на изменение записей в исходном компоненте.
В рассмотренных заданиях использован первый вариант.
67
3.8. Итоговый запрос
Итоговые запросы предназначены для статистического анализа по-
лей вычисляемых типов. При их выполнении как правило производится группировка записей определенного исходного компонента БД по значе-
нию одного или нескольких полей любых типов. Далее для каждой группы отдельно рассчитываются статистические характеристики.
Наиболее часто в практике рядового пользователя применяются следующие операторы:
–среднее значение – Avg (Average);
–сумма – Sum;
–минимальное значение – Min;
–максимальное значение – Max;
–число записей в группе – Count.
Создавать итоговый запрос проще с помощью мастера, поскольку на одном из его шагов есть возможность перехода к соответствующему виду запроса и упрощено задание статистических операторов.
Задание А. Рассчитать минимальную стоимость тура и среднюю цену одного дня тура, а также предлагаемое количество туров для каждого континента.
Порядок действий.
1. В окне "База данных" дать команду "Создание запроса с помо-
щью мастера". В Access-2007 надо выбрать вкладку "Создание", в ней зна-
чок "Мастер запросов" и далее из предлагаемых типов запросов выбрать
"Простой запрос".
2. В окне "Создание простых запросов" в окошке "Таблицы и запро-
сы" выбрать запрос "РасчетЦеныДня". В окошке "Доступные поля" вы-
брать поле "Континент" и нажать кнопку ">", после чего имя поля "Конти-
нент" появится в окошке "Выбранные поля". Аналогично выбрать поля
"Стоимость" и "ЦенаДня". Нажать "Далее".
68
3. В переключателе "Выберите подробный или итоговый отчет" вы-
брать "Итоговый". Нажать кнопку "Итоги".
4. В окне "Итоги" выбрать итоговые значения для вычисления. По условию работы включить флажки:
"СтоимостьРубли" – Min; "ЦенаДня" – Avg ( среднее значение).
Также включить флажок "Подсчет числа записей в Туры" в правом нижнем углу окна. Нажать "ОК", затем – " Далее".
5. Задать имя созданного запроса: "СтатистикаПоКонтинентам".
Нажать "Готово" для просмотра результата запроса.
В поле "Count – Туры" показано число туров, предлагаемое на каж-
дый континент.
6. Перейти в режим конструктора и задать свойства полей:
–формат поля – денежный;
–число десятичных знаков – 2.
Задание Б. Выполнить анализ предложений туров от различных ту-
ристских фирм. Задание выполняется аналогично предыдущему, только вместо поля " Континент" используется поле "Фирма". Сохранить запрос под именем "СтатистикаПоТурфирмам".
Если нужно провести группировку записей по значениям несколь-
ких полей, то удобнее работать в режиме конструктора запросов.
Задание В. Определить минимальную и максимальную продолжи-
тельности туров на разные континенты с разными видами отдыха.
Для выполнения надо создать итоговый запрос с группировкой по двум показателям: "Континент" и "ВидОтдыха".
Порядок действий.
1. Открыть запрос "ТурыСведения" в режиме конструктора. Сохра-
нить запрос под именем "СтатистикаПоВидам".
69
2. Удалить все поля, кроме "Континент", "Продолжительность", и "ВидОтдыха".
Внимание! При формировании итогового запроса принципиальное значение имеет порядок расположения полей. Поля, по которым произво-
дится группировка, должны располагаться слева от полей, для которых рассчитываются статистические характеристики. При этом нужно соблю-
дать последовательность группировки. Так, если объединение по группам производится сначала по континентам, а потом внутри созданных групп уже по видам отдыха, то поле "Континент" должно стоять слева от поля
"ВидОтдыха" .
3. В панель запроса ввести поле "ВидОтдыха" между полями "Кон-
тинент" и "Продолжительность". Для этого столбец поля "ВидОтдыха" на-
до выделить, зацепить курсором и перетащить.
4. В столбце "Континент" вызвать быстрое меню и выбрать команду
"Групповые операции" (для Access-2007 – команду "Итоги").
5. В столбце "Продолжительность" поставить курсор в ячейку
"Групповая операция" (на слове "Группировка"), открыть появившийся раскрывающийся список и выбрать оператор Min.
6. Еще раз ввести в запрос поле "Продолжительность" из таблицы
"Туры". Для нового поля выбрать оператор Max. 7. Выполнить запрос.
3.9. Перекрестный запрос
Перекрестный запрос так же, как и итоговый, является одним из ин-
струментов анализа информации. При его выполнении создается таблица,
в которой заголовками строк являются различные значения показателя одного из полей (обычно текстового) реляционной таблицы, а заголовками столбцов – значения показателя другого поля (обычно текстового) той же таблицы. В ячейках содержатся статистические данные по третьему полю