6371
.pdf70
(вычисляемого типа), которые рассчитываются по группам записей, вы-
бранным по показателям соответствующей строки и соответствующего столбца.
Например, надо провести анализ специализации туристских фирм по разным видам отдыха, для чего рассчитать количество туров опреде-
ленных видов, предлагаемых каждой фирмой (вычисляемое с помощью оператора Count). Результирующая таблица будет иметь вид, приведенный в табл. 8.
|
|
|
|
Таблица 8 |
|
Пример перекрестного запроса |
|
||
|
|
|
|
|
Фирма |
Пляжный |
Экскурсии |
Лечебный |
Горные лыжи |
|
|
|
|
|
Якорь |
8 |
5 |
4 |
0 |
|
|
|
|
|
Дельфин |
6 |
7 |
5 |
1 |
|
|
|
|
|
Волна |
5 |
2 |
0 |
3 |
|
|
|
|
|
Задание А. Выполнить перекрестный запрос специализации фирм по видам отдыха.
Порядок действий (для Access -03 и более ранних версий).
1.Дать команду "Создание запроса в режиме конструктора".
2.В окне "Добавление таблицы" добавить запрос "ТурыСведения" (вкладка "Запросы").
3.Последовательно ввести в панель запроса поля "Фирма", "Ви-
дОтдыха", "КодТура".
4. Дать команду "Запрос" – " Перекрестный" (через главное меню или используя кнопку "Тип запроса" на панели инструментов).
5. В строчке панели запроса "Перекрестная таблица" установить:
–для столбца " НазваниеФирмы" – " заголовки строк";
–для столбца "ВидОтдыха" – " заголовки столбцов";
71
– для столбца "КодТура" – " значение".
6. В ячейке "Групповая операция" столбца "КодТура" установить
Count – число записей, относящихся к определенной фирме и определен-
ному виду отдыха.
7. Выполнить запрос. Сохранить его под именем "ФирмыВиды".
В Access-2007 создание перекрестного запроса происходит не-
сколько иначе. Порядок действий следующий.
1. Выбрать вкладку "Создание", в группе "Другие" нажать кнопку
"Мастер запросов".
2.В списке видов запросов выбрать "Перекрестный запрос".
3.В окне "Создание перекрестных таблиц" выбрать "Показать" – "Запросы", в списке выбрать запрос "ТурыСведения".
4.Выбрать поле, значения которого будут использоваться в качест-
ве заголовка строки – " НазваниеФирмы".
5. Выбрать поле, значения которого будут использоваться в качест-
ве заголовка столбца – " ВидОтдыха".
6. Следующий шаг – из списка полей выбрать "КодТура", из списка функций – " Число", далее задать имя запроса – " ФирмыВиды" и нажать
"Готово".
Задание Б. Выполнить перекрестный запрос, отражающий сред-
нюю цену одного дня тура по странам и видам отдыха.
Порядок действий аналогичен предыдущему заданию. Запрос соз-
дается на основе запроса "РасчетЦеныДня". В панель запроса вводятся по-
ля "Страна", "ВидОтдыха", "ЦенаДня". В строке "Перекрестная таблица"
устанавливается:
–для столбца "Страна" – " заголовки строк";
–для столбца "ВидОтдыха" – " заголовки столбцов";
–для столбца "ЦенаДня" – " значение".
72
В ячейке "Групповая операция" столбца ""ЦенаДня" надо устано-
вить оператор Avg. Запрос сохраняется под именем "АнализЦеныДня".
При выполнении задания в Access-2007:
– поля, значения которых будут использоваться в качестве заголов-
ков строк – " Страна";
– поле, значения которого будут использоваться в качестве заголов-
ка столбца – " ВидОтдыха";
– из списка полей выбрать "ЦенаДня", из списка функций – Avg (Среднее).
3.10. Анализ динамики продаж с помощью запросов
Одной из практических задач, интересующих менеджеров по про-
дажам и их руководителей, является выявление динамики продаж за опре-
деленный период времени и распределение продаж по категориям товаров.
Товаром для туристской фирмы являются предлагаемые ей туры. В зада-
нии предлагается получить информацию о динамике продаж туров. Для этой цели в БД вводятся две новые таблицы, содержащие сведения о кли-
ентах туристской фирмы и о продажах туров.
Задание А. Ввести в БД сведения о продажах туров физическим
лицам.
Порядок действий.
А). Создать таблицы "Клиенты" и "Продажи". Их структуры при-
ведены ниже.
Таблица 9
|
Структура таблицы "Клиенты" |
||
|
|
|
|
Имя поля |
|
Тип данных |
|
|
|
|
|
КодКлиента |
|
Счетчик |
|
|
|
|
|
ФИО |
|
Текстовый |
|
|
|
|
|
|
73 |
|
|
|
Таблица 10 |
|
Структура таблицы "Продажи" |
|
|
|
|
Имя поля |
|
Тип данных |
|
|
|
КодПродажи |
|
Счетчик |
|
|
|
ФамилияКлиента |
|
Мастер подстановок (из таблицы "Клиенты") |
|
|
|
НазваниеТура |
|
Мастер подстановок (из таблицы "Туры") |
|
|
|
ДатаПродажи |
|
Дата/время (формат даты краткий) |
|
|
|
ДатаНачалаТура |
|
Дата/время (формат даты краткий) |
|
|
|
Другие данные о туре в таблицу "Продажи" вносить не надо, так как они присутствуют в таблице "Туры".
Ввести в таблицу "Клиенты" произвольные фамилии клиентов (не менее двадцати). Ввести в таблицу "Продажи" сведения о продажах в те-
чение текущего полугодия. Из таблицы "Клиенты" ввести все фамилии клиентов. Даты продаж и названия туров вводить (выбирать) произвольно.
Даты начала туров ввести также произвольно, но в соответствии с логикой.
Тур не должен начинаться раньше, чем была продана путевка. Пляжный отдых на Черноморском побережье Кавказа не должен проходить зимой, а
катание на горных лыжах в Болгарии – летом.
Б). Создать запрос на выборку "ПродажиТуров" (аналогично зада-
нию в разделе 3.1 ), имеющий следующую структуру.
Для заполнения поля "ДатаОкончания" используется арифметиче-
ский расчет, выполняемый в запросе на выборку (п. 3.7). Он выполняется следующим образом.
1. После ввода всех полей в панель запроса в режиме конструктора установить курсор на пустом столбце справа от последнего столбца (поле
"ДатаНачала") и вызвать быстрое меню. В нем выбрать команду "Постро-
ить".
|
74 |
|
|
|
|
Таблица 11 |
|
Структура запроса "ПродажиТуров" |
|||
|
|
|
|
Таблица (запрос) |
|
Имя поля |
|
|
|
|
|
Продажи |
|
КодПродажи |
|
|
|
|
|
Клиенты |
|
ФИО |
|
|
|
|
|
Страны |
|
Континент |
|
|
|
|
|
ВидОтдыха |
|
ВидОтдыха |
|
|
|
|
|
Туры |
|
НазваниеТура |
|
|
|
|
|
РасчетЦеныРуб |
|
СтоимостьРуб |
|
|
|
|
|
МестоОтдыха |
|
МестоОтдыха |
|
|
|
|
|
Фирма |
|
НазваниеФирмы |
|
|
|
|
|
Фирма |
|
Адрес |
|
|
|
|
|
Продажи |
|
ДатаПродажи |
|
|
|
|
|
Продажи |
|
ДатаНачала |
|
|
|
|
|
Создается непосредственно в запро- |
|
ДатаОкончания |
|
се "ПродажиТуров" |
|
|
|
|
|
|
|
2. В окне построителя выражений (см. рис. 5) задать выражение расчета даты окончания тура как суммы даты начала тура и продолжи-
тельности тура. Для этого в левом нижнем окошке построителя выражений открыть папку "Таблицы", затем открыть папку "Туры". Дважды щелкнуть на имя поля "Продолжительность", после чего в окне записи выражений появится имя названного поля и имя таблицы, в которой оно находится.
Далее ввести знак + с клавиатуры или щелчком мыши на соответствующей кнопке из группы кнопок операторов. Ввести в выражение поле "ДатаНа-
чала" из таблицы "Продажи" аналогично вводу предыдущего поля. Выра-
жение должно иметь вид: [Туры]![Продолжительность] +[Продажи]![ДатаНачала] Нажать "ОК".
3.Выполнить созданный запрос.
75
Задание Б. Рассчитать динамику продаж туров по месяцам, а также по видам отдыха и регионам (континентам).
Порядок действий.
1. Создать запрос "ДинамикаПродаж" аналогично заданию разде-
ла 3.8
Запрос создавать с помощью мастера запросов. В качестве исходно-
го компонента выбрать запрос "ПродажиТуров", в нем выбрать поля "Да-
таПродажи" и "ЦенаРуб". Вид отчета выбрать "Итоговый". В окне "Итоги"
выбрать итоговое значения для вычисления – Sum для единственного поля
"ЦенаРуб". Также включить флажок "Подсчет записей Продажи". Нажать ОК. Из вариантов интервала группировки дат выбрать "По месяцам". За-
дать имя запроса "ДинамикаПродаж", нажать "Готово".
2. С помощью конструктора создать запрос "ДинамикаВидыКонти-
ненты".
Дать команду "Создание запроса в режиме конструктора" (в Access2007 – вкладка "Создание", группа "Другие", кнопка "Конструктор запро-
сов"). Ввести в запрос поля "Континент" и "ВидОтдыха" из запроса "Про-
дажаТуров". В следующем пустом поле в верхней строчке открыть бы-
строе меню, выбрать команду "Построить". В окне построителя выражений в левом нижнем окошке выбрать папку "Функции", в ней – " Встроенные функции" , далее выбрать в среднем нижнем окошке – " Дата/время", в пра-
вом нижнем окошке – "Month" ( функция сортировки дат по месяцам). В
окошке записи выражения вместо "number" ввести поле "ДатаПродажи" из таблицы "Продажи". Выражение должно принять следующий вид:
Month ( [Продажи]![ДатаПродажи] ).
Далее нажать ОК для возврата в окно конструктора. Ввести четвер-
тое поле – " ЦенаРуб". В поле "Континент" в строке "Сортировка" вызвать быстрое меню, выбрать "Групповые операции" (в Access-2007 – " Итоги").
76
В поле "ЦенаРуб" в строке "Групповая операция" выбрать в раскрываю-
щемся списке операций – Sum. Выполнить запрос.
По условию работы рассчитывается общий объем поступлений от продажи туров. На практике работников фирмы будет интересовать не он,
а доходы, состоящие из процента комиссионных отчислений, который мо-
жет различаться для разных туров и у разных туроператоров. Указанный процент можно легко рассчитать, для чего ввести в таблицу "Туры" еще одно поле – " ПроцентОтчислений" и при расчетах умножать его на стои-
мость тура. Рассмотренную операцию и последующий анализ результатов предлагается выполнить самостоятельно.
77
4. ФОРМЫ И ОТЧЕТЫ
4.1. Общие сведения. Создание форм
Форма – это компонент БД в Access, создаваемый с целью пред-
ставления в удобном виде информации из исходных компонентов (таблиц или запросов) для просмотра или изменения. Формы могут также исполь-
зоваться для размещения созданных пользователем элементов управления
(командных кнопок, переключателей, полей со списком и др.), то есть яв-
ляться элементами интерфейса – средствами диалога пользователя с про-
граммой.
Можно создавать формы, предназначенные только для удобства ввода в существующие таблицы новых данных. Информацию, содержа-
щуюся в уже существующих таблицах и запросах, удобнее просматривать,
а при необходимости изменять, также с использованием форм. В форме можно показывать или все данные, или только некоторую их часть в удоб-
ном для пользователя представлении .
Как правило в форму вводится содержание значений ячеек для вы-
бранных записей и подписи к ним – заголовки полей, причем не обяза-
тельно полностью соответствующие их именам. Например, в подписях формы можно не опасаясь последствий использовать пробелы.
Обычно информация из исходной таблицы или запроса размещает-
ся в центре окна формы. В зависимости от выбранного пользователем внешнего вида формы на экране одновременно может быть представлено содержание одной, нескольких или всех записей. Информацию и элемен-
ты управления или оформления, которые не меняются при переходе от од-
них записей к другим, можно добавить в заголовок или в примечание – то есть в верхнюю или нижнюю часть окна формы.
Так же, как и другие компоненты БД, формы могут создаваться с помощью конструктора или с помощью мастера.
78
В Access-2007 наиболее простой способ создания формы – выде-
лить таблицу или запрос в области данных и на вкладке "Создание" на-
жать кнопку "Форма". Автоматически будет создана форма, в которую войдут все поля исходного компонента. Внешний вид и оформление фор-
мы будут заданы программой автоматически.
Задание. Создать форму для просмотра содержания всех полей вы-
бранной записи запроса "ТурыСведения".
Порядок действий.
1. В области данных окна БД выбрать "Формы", дать команду "Соз-
дание формы с помощью мастера". В Access-2007 выбрать вкладку "Соз-
дание", в группе "Формы" выбрать раскрывающийся список кнопок "Дру-
гие формы", в нем – кнопку "Мастер форм".
2. В списке "Таблицы и запросы" выбрать "ТурыСведения". Нажать кнопку ">>" для выбора всех полей. Нажать "Далее". В Access-2007 на следующем шаге, где предлагается выбрать вид представления данных, ре-
комендуется принять установки по умолчанию и еще раз нажать "Далее".
3.Выбрать внешний вид формы " Выровненный ". Нажать "Далее".
4.Выбрать любой стиль. Под стилем понимается фон, а также оформление текста в полях формы и в подписях. Образцы оформления по-
казаны слева от списка стилей формы. Нажать "Далее".
5.Активизировать переключатель в положение "Изменить макет формы", чтобы форма открылась в режиме конструктора. Нажать "Готово".
6.Перетащить немного вниз полосу "Область данных" так, чтобы появилось место под полосой "Заголовок формы" (если это необходимо).
Если заголовок формы вводится программой автоматически – изменить его на "Сведения о турах".
7. Активизировать панель элементов. Выбрать на ней кнопку над-
писи "Аа", поставить курсор в область заголовка формы и движением мы-
ши при зажатой левой клавише обозначить прямоугольник для ввода за-
79
головка. Сразу после появления прямоугольника ввести в него с клавиату-
ры слова "Сведения о турах". Далее активизировать созданное поле (окош-
ко) с текстом заголовка, щелкнув мышью на его границе, после чего долж-
ны появиться маркеры на сторонах и углах прямоугольника. При помощи панели инструментов "Форматирование" (Access-2007 – группа кнопок
"Форматирование" вкладки Макет) задать выравнивание – по центру; раз-
мер, начертание и цвет шрифта, а также цвет фона – по собственному вы-
бору.
8. Зацепить за нижний край полосу "Примечание формы" и перета-
щить ее немного вниз, чтобы появилось место для ввода текстовой надпи-
си в примечание.
9. Аналогично вводу надписи в заголовок ввести в примечание над-
пись "Туристское агентство ИВАНОВ и К (вместо Иванов поставить свою фамилию) предлагает разнообразный отдых". Цвет фона оставить про-
зрачным, остальное оформление выполнить по своему вкусу.
10.Перейти в режим формы для просмотра. При желании вернуться
врежим конструктора и изменить дизайн.
4.2.Работа с созданной формой. Возможности дизайна форм
При работе с формой удобно использовать навигатор – небольшую панель, расположенную в нижней части окна формы, служащую для "пе-
релистывания" записей. В центре навигатора в окошке указан порядковый номер записи в таблице. Слева и справа расположены кнопки перехода.
Треугольник с палочкой – переход на первую (слева) и последнюю (спра-
ва) записи. Треугольник без палочки – переход на предыдущую (слева) и
последующую (справа) записи. Треугольник со звездочкой – переход на новую (пустую) запись для ее заполнения в конце таблицы.