Запросы с вычисляемыми полями



Длявычисляемого поля в запросе используют пустую свободную колонку в нижней части окна запроса. Формула вычислений пишется в строке Поле пустого столбца (обычно там стоят имена полей из таблиц). Она может содержать константы, имена полей таблиц и запросов, параметры. В формулах используются знаки арифметических ("+" – сложение, "-" – вычитание, "*" – умножение, "/" – деление, "^" – возведение в степень) и логических операций. Можно писать круглые скобки для указания порядка выполнения операций и использовать разнообразные встроенные функции Access (математические, строковые, финансовые и др.). В СУБД Access имеется специальный Построитель выражений(вызываемый нажатием клавиш Ctrl - F 2), который облегчает запись формул, особенно содержащих поля таблиц и запросов. Его также можно вызвать из контекстного меню, которое открывается щелчком правой кнопки мыши в пустой ячейке Поле – пунктПостроить… .Он позволяет вводить точные названия из списка, расположенного в левой части окна Построителя, содержащего названия полей таблиц, запросов, форм и т.п., что дает возможность избежать ошибок при вводе названий полей с клавиатуры и ускоряет ввод формул. Заголовок вычисляемого поля пишется перед формулой, за ним ставится двоеточие.

Создадим запрос “Товар с 25 процентами” для таблицы ТОВАР, в котором введем вычисляемое поле Стоимость товара. Оно будет заполняться по формуле: [Цена]*1,25. Перетащим в бланк QBE все поля таблицы (значок *). В заголовке второй колонки запишем: Стоимость товара: [Цена]*1,25. Выполним запрос.

Задание 7.

Создать запрос “Уценка товара” для таблицы ТОВАР с вводом параметра Процент уценки, для чего ввести вычисляемое поле Новая цена по формуле: [Цена]*(100 - [Процент уценки])/100. Для создания запроса скопировать запрос “Товар с 25 процентами” через буфер обмена. Кроме того, надо в пункте меню Запрос / Параметры... указать имя параметра Процент уценки и его тип “Двойное с плавающей точкой".

 3.5. Запросы к связанным таблицам

Обычно в запросах используются поля из разных таблиц. Так, в таблице ЗАКАЗ нет фамилий покупателей и названий товаров, а есть только их коды. Для получения полной информации необходимо в запросе использовать три таблицы: ЗАКАЗ, ТОВАР, ПОКУПАТЕЛЬ. При построении таких запросов в верхней части бланка QBE открываются все необходимые таблицы вместе с их связями, которые появляются автоматически. Затем в нижнюю часть банка запроса перетаскиваются нужные поля из разных таблиц. Полезно указывать имена таблиц, из которых берутся поля, так как часто имена некоторых полей в разных таблицах совпадают. Для этого в режиме Конструктора в верхнем меню выбираются пункты Вид/ Имена таблиц, в результате в бланке QBE появляется строка с именами таблиц.

Создадим запрос “Покупатели и даты” для таблиц ЗАКАЗ и ПОКУПАТЕЛЬ с полями Фамилия ИО, Код заказа, Дата продажи в указанном порядке. Полученный список должен быть отсортирован по фамилиям покупателей в порядке возрастания и датам в порядке убывания.Для этого откроем таблицы ПОКУПАТЕЛЬ и ЗАКАЗ (связь по полю Код покупателя уже установлена) и перетащим указанные выше поля в бланк QBE. Введем сортировку в указанном порядке.

Задание 8.

1. Создать запрос “Покупки клиента” с вводом начала фамилии в качестве параметра. Запрос содержит поля Фамилия ИО, Наименование, Код заказа, Дата продажи. Условие отбора будет иметь вид: Like [ФИО] & ”*”.

2. Создать запрос “Заказы со стоимостью“, содержащий поля Фамилия ИО, Наименование, Код заказа, Количество товара, Цена и вычисляемое поле Стоимость: [Цена]*[Количество товара].

Запросы с группировкой данных

Часто запросы создаются для анализа данных в таблицах, причем с использованием различных критериев для отбора нужных записей. При этом все записи с одинаковыми значениями в указанном поле группируются в результате запроса в одну новую запись, а по другим полям выполняются вычисления.Выделяются две группы полей: одна для группировки записей, вторая для подсчета итогов. Для разработки таких запросов используется пиктограмма  Групповые операции или пункты меню Вид / Групповые операции. Имеются следующие групповые операции: Sum – сумма значений поля, Avg – среднее значение поля, Min, Max – минимальное и максимальное значение в поле, Count – количество значений в поле и другие (см. Справку Access). Можно использовать пункты меню Выражение для формирования более сложных операций вычисления итогов и Условие для задания условий отбора записей, не совпадающее с критерием группировки, соответствующее поле будет невидимым.

Создадим запрос “Итог по датам” для таблицы ЗАКАЗ, содержащий поля Дата продажи и Количество товара. Будем вычислять число единиц товара, проданных в течение каждого дня, и выведем общий список по дням. Для этого после выбора таблицы ЗАКАЗ и переноса колонок с именами полей в нижнюю часть бланка QBE надо выбрать в меню пункты Вид / Групповые операции или нажать кнопку . В бланке QBE появится строка Групповая операция. В поле Дата продажи выберем Группировка (т.е. записи будут сгруппированы по датам продажи), в поле Количество товара выберем Sum. Дополнительно введем в колонке Дата продажи сортировку по датам в порядке убывания.

Задание 9.

1. Создать запрос “Итоги по покупателям” для таблиц ПОКУПАТЕЛЬ и ЗАКАЗ, содержащие поля Фамилия ИО и Количество товара. Вычислить количество товаров, купленное каждым покупателем.

2. Создать запрос “Число покупок” для таблиц ПОКУПАТЕЛЬ и ЗАКАЗ, содержащие поля Фамилия ИО и Количество товара. Вычислить число покупок, сделанных каждым покупателем (функция Count). Использовать предыдущий запрос, скопировав его.

3. Создать запрос “Сумма денег по покупателям”, содержащие поля Фамилия ИО и вычисляемое поле Сумма, содержащее сумму, заплаченную покупателем за купленные им товары. Для вычисления суммы надо количество товара умножить на его цену. Запрос будет использовать три таблицы: ТОВАР, ПОКУПАТЕЛЬ и ЗАКАЗ.

4. Создать запрос “Среднее количество проданных товаров по категориям” для таблиц ЗАКАЗ, КАТЕГОРИЯ ТОВАРА и ТОВАР, содержащий поля Значение и Количество товара. Использовать функцию Avg .

Запросы с удалением записей

Ранее рассмотренные запросы относятся к категории запросов выборки. Они не меняют записей БД, а только отбирают из нее необходимые нам записи.

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

Напишем запрос удаления из таблицы ЗАКАЗ записей с более ранней датой, нежели вводимая по запросу. Эта операция нужна для того, чтобы объем таблицы ЗАКАЗ не разрастался до бесконечности. На практике обычно перед удалением удаляемые записи помещают в архив.

Вначале создадим запрос-просмотр, чтобы не удалить что-нибудь нужное (восстановить данные автоматически уже не удастся!). Для этого перетащим в бланк запроса QBE поля * и Дата продажи (последнее поле без печати, для этого отменим Вывод на экран в бланке QBE в этой колонке), введем условие <[Дата], укажем параметр Дата в таблице параметров с типом Дата/время. Назовем запрос “Удаление по дате”. Выполним запрос для определенной даты, нажав пиктограмму  Выполнить, и убедимся, что выводятся нужные нам записи.

Теперь преобразуем его в запрос удаления. В меню выберем пункты Запрос / Удаление. Больше менять в запросе ничего не нужно. Для выполнения опять нажмем кнопку  Выполнить. Появится сообщение, сколько записей будет удалено. Если нажмем кнопку Да, тозаписи, отвечающие условию, будут удалены. Выберем кнопку Нет, чтобы не удалять имеющиеся записи.

Запросы замены

Запросы замены также позволяют менять информацию в БД. Создадим запрос “Инфляция” для увеличения всех цен в таблице ТОВАР на 20%. Перенесем в бланк запроса поле Цена, выберем пункты меню Запрос / Обновление. Введем в строке Обновление формулу [Цена]* 1,2. Выполним запрос. Перед обновлением записей откроется окно-предупреждение такого же типа, что и в предыдущем пункте.

Перекрестные запросы

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

Например, составим запрос, сколько и каких товаров купили отдельные покупатели. Для начала составим групповой запрос. Откроем таблицу ЗАКАЗ, отбуксируем поля Код покупателя, Код товара, Количество товара. Выберем в меню кнопку  Групповые операции. В столбце Количество товара выберем Группировка / Sum. Выполним запрос.

Теперь преобразуем его в перекрестный запрос. Для этого используем пункты меню Запрос / Перекрестный, выберем для Кода покупателя в строке Перекрестная таблица режим Заголовки строк, для Кода товараЗаголовки столбцов, для Количества товараЗначение. Все готово, выполним запрос, получим искомую таблицу.

Задание 10.

1. Создать перекрестный запрос из п.3.9, но вместо кодов указать фамилии покупателей и наименования товаров, для этого использовать связанные таблицы ТОВАР, ЗАКАЗ и ПОКУПАТЕЛЬ.

2. Ввести в предыдущую таблицу условие – выбирать заказы после определенной даты, которую вводить в качестве параметра.

Указание. Для этого надо ввести еще один столбец Дата продажи, в строке Групповая операция выбрать Условие, ввести условие >=[Дата],  описать параметр Дата в пункте меню Параметры.

ФОРМЫ

Формы используются чаще всего для ввода данных в таблицы, иногда для вывода данных, для создания меню и командных кнопок. Именно формы являются главным средством при работе пользователя с приложениями, создаваемыми в СУБД Access. В форме данные можно представить в удобном и наглядном виде. В режиме формы используются все возможности графической среды Windows: окна, различные шрифты, выделения, цвет, графика, флажки, кнопки и т.п.

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

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

В СУБД Access есть несколько Мастеров по разработке форм, которые позволяют создать форму за несколько секунд. Если вам в ней что-нибудь не нравится, то с помощью Конструктора ее легко можно довести до желаемого совершенства.

Для разработки форм в верхней линейке пиктограмм имеется ряд полезных кнопок. В левом верхнем углу окна Access имеется элемент Вид. Он позволяет выбрать один их трех возможных режимов работы с формой:  Конструктор,  Режим Формы и  Режим Таблицы. Эти режимы дают возможность при работе с формой просматривать промежуточные состояния конструируемой формы и данные в в форме таблицы. Кнопка  Предварительный просмотр дает возможность просмотреть вид документа перед тем, как его печатать. Кнопка  позволяет ввести Новую запись в конец таблицы. Кнопки   (Вырезать, Копировать, Вставить) используются для вырезания или копирования элементов формы в буфер обмена с последующей вставкой их в другое место. Кнопка  Найти предназначена для поиска нужной записи в больших таблицах. Эти же кнопки доступны и в других режимах работы с СУБД Access.

Создание форм

Создадим форму “Покупатель” для ввода данных по покупателям. Выберем закладку Формыв окне базы данных. Нажмем кнопку Создать. В открывшемся окне Новая форма в поле Выберите в качестве источника данных таблицу или запрос выбор можно сделать нажатием кнопки , после чего открывается список доступных таблиц и запросов. После выбора таблицы ПОКУПАТЕЛЬ выберем вариант Автоформа: в столбец. и нажмем кнопку ОК. В этом случае вся работа по созданию формы выполняется компьютером. Будет создана форма, которую можно использовать для ввода и просмотра данных.

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

Перемещения между полями внутри формы выполняются с помощью стрелок (вверх, вниз, вправо, влево), мыши, клавиш Tab и Shift-Tab. Для перехода от одной записи к другой используются кнопки в нижней части формы либо пункт меню Правка / Перейти. После закрытия формы по запросу системы введем ее имя “Покупатель”.

Просмотрим данные по уже введенным ранее покупателям и добавим данные новых покупателей.

Имеются еще две автоформы: Ленточная и Табличная. Они дают возможность представлять информацию сразу по нескольким последовательным записям.

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

Создадим форму “Товар” для таблицы ТОВАР, используя услуги этого мастера.Нажмем кнопку Создать, выберем из списка таблицу ТОВАР, нажмем кнопку Мастер форм. С помощью кнопки “>“ выберем по очереди все столбцы (таким образом можно менять порядок полей ввода или водить/выводить не все поля таблицы). Кнопка “>>“ пересылает все поля таблицы сразу. Кнопки “<“ и “<<“ действуют в обратную сторону. Нажмем кнопку Далее, перейдем к выбору внешнего вида формы. Выберем В один столбец. Далее выбирается стиль, возьмем Стандартный. Наконец, введем заголовок формы ТОВАР и нажмем кнопку Готово. Получим форму, аналогичную предыдущей.

Задание 11.

1. Создать форму “Товар в ленточной форме” для таблицы ТОВАР с помощью мастера Автоформа: ленточная.

2. Создать форму “Заказ” для таблицы ЗАКАЗ, используя услуги Мастера форм.

Конструктор форм

В этом режиме можно менять внешний вид существующей формы или создавать новую. Если форма открыта, можно использовать пиктограмму  Конструктор, если нет, то кнопку Конструктор. В окне конструктора откроется представление формы, окруженное инструментами. Используемые средства Конструктора можно выбрать в пункте меню Вид. Пункт Линейка дает линейки, расположенные вверху и слева, они используются для определения геометрических размеров формы и ее элементов. Сетка  задает точки сетки внутри формы, к которым идет привязка элементов формы. Панель элементов определяет различные элементы формы, которые можно использовать при построении формы.

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

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

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

Access 2003, в отличие от более ранних версий, создаёт автоформу без заголовка. Добавим в форму ТОВАР заголовок. Для этого подведём указатель мыши к границе между Заголовком формы и Областью данных, он примет форму двунаправленной стрелки. Нажмем левую кнопку мыши и сместим Область данных вниз.

Выберем на Панели элементов Надпись, щёлкнем по кнопке левой клавишей мыши. Нарисуем на форме в области заголовка Прямоугольник левой клавишей мыши в том месте, где будет располагаться заголовок нашей формы.

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

Задание 12.

Для формы “Товар” поменять месторасположение и внешний вид заголовка (цвета, размеры). Изменить размеры и шрифт для заголовков и полей данных формы, переместить их вместе и по отдельности.

Создание элементов формы

В форму можно вставлять разнообразные элементы. Создадим форму для ввода заказов “Заказ с текущей датой”, в которой в заголовок (рядом со словом ЗАКАЗ) добавим текст Сегодня: <текущая дата>, например, Сегодня: 4.12.2010. Для этого вначале создадим Автоформу: в столбец по таблице ЗАКАЗ. Затем вызовем конструктор. Отодвинем вниз границу между Заголовком формы и Областью данных, чтобы освободить место для заголовка. Для этого надо поместить курсор на границу областей, он примет вид двунаправленной вертикальной стрелки с чертой посередине. Границу буксируют при нажатой левой кнопке мыши.

Нажмем на панели элементов кнопку  Надпись, она используется для ввода текстовых элементов.Нарисуем в области заголовка прямоугольник и введем в него слово ЗАКАЗ. Увеличим размер шрифта до 14 пт.

Затем на панели элементов выберем кнопку  Поле, нажмем на неё и щелкнем в Заголовке формы рядом со словом ЗАКАЗ. Там появятся два окна: одно слева для надписи (например, Поле 22:), второе справа для данных (Свободный). Щелкнем правой кнопкой мыши по полю надписи и в появившемся меню выберем пункт Свойства. В строке Подпись (вкладка Макет) введем текст Сегодня: . Перейдем в поле Свободный и откроем список свойств для него. Для ввода нужного выражения воспользуемся Построителем выражений. В строке Данные (вкладка Данные) щелкнем левой кнопкой мыши по кнопке . Выберем последовательно Функции / Встроенные функции / Дата/Время / Date. В верхнем поле Построителя должен появится текст Date (). Нажмем кнопку ОК. В поле Данные появится формула = Date().

В строке Формат поля (вкладка Макет) выберем Средний формат даты. Теперь можно посмотреть, что получилось, с помощью пиктограммы  Форма.

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

Задание 13.

Создать форму “Товар с учетом затрат на хранение” на базе таблицы ТОВАР. В нее добавить элемент с подписью Затраты на хранение и полем значений, вычисляемых по формуле =[Цена]*0,05. Указанные поля разместить в форме ниже поля ввода Цена.

Переключатели

Если числовые данные могут принимать только некоторые определенные значения, то для их ввода и представления используются элементы  Переключатели. Например, у нас товары делятся на 4 типа: Выч. техника, Копир. техника, Программы, Носит. инф. Каждый тип кодируется целым числом: 1, 2, 3, 4. Для расшифровки используется таблица КАТЕГОРИЯ ТОВАРА.

Скопируем форму “Товар” через буфер обмена в новую форму “Товар с переключателями” и откроем ее в режиме Конструктор. Увеличим горизонтальный размер формы, перетащив правую границу формы с нажатой левой кнопкой мыши вправо.

Выберем пиктограмму  Группа переключателей. Щёлкнем в свободной правой части формы, в дело вступит мастер Создание группы переключателей. Он предложит ввести подписи переключателей, введем их: Выч. техника, Копир. техника, Программы, Носит. инф., каждую в новую строчку. Выберем значение по умолчанию, например, Выч. техника. Далее согласимся с предложенными значениями и выберем для их хранения поле Категория таблицы ТОВАР. Выберем тип элементов и оформление группы. Осталось дать название группе, например, Категория товара, и все готово. Выровняем полученные заголовок группы и саму группу на форме, если это необходимо.

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

Задание 14.

Создать форму “Покупатель с переключателями” с использованием переключателей для поля Категория в таблице ПОКУПАТЕЛЬ.

Списки

Они очень удобны при вводе данных в связанные по ключевым полям таблицы. У нас в таблице ЗАКАЗ используются числовые коды покупателей и товаров, текстовые расшифровки которых хранятся в таблицах ПОКУПАТЕЛЬ и ТОВАР. Но в голове держать эти коды невозможно, поэтому необходим механизм для их удобного ввода.

Создадим форму “Заказ со списком”, в которой предусмотрим дружественный к пользователю ввод кодов товаров. Вначале на основе таблицы ЗАКАЗ создадим Автоформу: в столбец и дадим ей указанное выше имя. Теперь вызовем Конструктор, расширим область данных вправо, чтобы освободить место для размещения списка.

Выберем на панели элементов пиктограмму  Список. Щелкнем в правой части формы левой кнопкой мыши. В дело вступит мастер Создание списков. Согласимся с предложением Объект "список" будет использовать значения из таблицы или запроса, нажмем кнопку Далее. На следующем шаге выберем таблицу ТОВАР (именно в ней находятся интересующие нас текстовые значения). Далее перешлем вправо (в Выбранные поля) поля Код товара и Наименование. Затем согласимся с сокрытием ключевого столбца Код товара. Далее выберем опцию Сохранить в поле:, в качестве нужного столбца для сохранения в таблице ЗАКАЗ выберем из раскрывающегося списка Код товара. В качестве подписи введем Наименование товара. Готово. Осталось перетащить подпись выше таблицы и увеличить ее длину, отрегулировать размеры окна.

Подпись и окно составляют группу. Группу делают активной щелчком левой кнопки мыши по любому элементу группы. Перетаскивают группу символом Раскрытая ладонь. Размеры изменяют стрелками, которые появляются при положении курсора на квадратике на рамке элемента. Для перемещения отдельных элементов группы используют их левый верхний угол (символ ладонь с поднятым вверх указательным пальцем) – этот прием мы и применим для перетаскивания подписи.

Теперь при выборе наименования товара из списка будет меняться его Код в соответствующем поле. Фактически, поле Код товара в форме уже не нужно, для ввода Кода товара достаточно иметь поле Список.

Задание 15.

Добавить в форму “Заказ со списком” список для ввода Кода покупателя.

Рисунки

Непосредственно на панели элементов для создания графических компонентов формы используются два элемента:  Линия и  Прямоугольник. Они дают возможность разбивать область ввода данных на отдельные части. Давайте поместим основные окна ввода (кроме поля со списком) в форме “Заказ с полем со списком” на выпуклый прямоугольник. Выберем инструмент Прямоугольник щелчком левой кнопки мыши и окружим наши окна рамкой в режиме буксировки границ прямоугольника (левый верхний – правый нижний углы). Покрасим прямоугольник в какой-нибудь приятный цвет, используя Свойства / Цвет фона. После этого наши окна могут исчезнуть. Это не страшно, просто надо выбрать пункт меню Формат / На задний план.

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

Мастер диаграмм

Построение диаграмм в СУБД Access представляет собой еще один пример использования механизма OLE для связи приложений Windows. Используется программа Microsoft Graph, входящая в состав текстовых редакторов Word и электронных таблиц Excel.

Построим диаграмму распределения по категориям цены товаров для таблицы ТОВАР. Вначале создадим запрос “Категории и цены товаров” по двум таблицам: ТОВАР и КАТЕГОРИЯ ТОВАРА, содержащий два поля – Значение и Цена, отсортированный по полю Значение. На основе этого запроса создадим форму “Диаграмма: Количество товаров по категориям”, в которой отразим количество товаров в каждой категории в виде объемной круговой диаграммы.

Вызовем мастера Диаграмма с помощью кнопки Создать, в качестве источника выбираем созданный раннее запрос. Из доступных полей выберем поле Значение. Тип диаграммы выберем Объемная круговая. Теперь введем заголовок диаграммы: Число товаров каждой категории и кнопкой Готово запустим построение диаграммы. Получим требуемую диаграмму.

На полученной диаграмме есть названия категорий, но нет численных значений. Это легко исправить. Вызовем программу Microsoft Graph, которая, собственно говоря, и создала нашу диаграмму. Для этого перейдем в режим Конструктораи дважды щелкнем левой кнопкой мыши по светлому полю на диаграмме. В верхней строке меню теперь представлены пункты меню приложения Microsoft Graph. Выберем пункты Диаграмма / Параметры диаграммы…/ Подписи данных / Значения. Нажмем кнопку ОК. На диаграмме появятся числа, показывающие число различных товаров в каждой категории. При необходимости их можно переместить в нужные места. Если хотим, можем вывести проценты.

Чтобы вернуться в режим Конструктора, достаточно щелкнуть по форме левой кнопкой мыши.Сохраним форму с указанным именем.

Для того же запроса “Категории и цены товаров” создадим столбчатую диаграмму значений средней цены товаров по категориям. В качестве полей диаграммы возьмем оба поля запроса. Выберем тип диаграммы Гистограмма. Далее в процессе диалога с мастером дважды щелкнем левой кнопкой мыши по кнопке Сумма_Цена. Откроется окно выбора функции, выберем Avg (Среднее). Название кнопки теперь поменяется на Среднее_Цена Дадим диаграмме название Средняя цена товаров по категориям. Размеры построенной диаграммы можно увеличить, вызвав Microsoft Graph (в режиме Конструктора).

Задание 16.

1. Заменить на предыдущей круговой диаграмме вывод чисел на вывод процентов (это делается путем вызова Microsoft Graph).

2. Создать форму для вывода круговой диаграммы “Категория покупателей – количество товаров”. Создать запрос для типов покупателей с полями Название из таблицы КАТЕГОРИЯ ПОКУПАТЕЛЯ и Количество товара из таблицы ЗАКАЗ, используя для этого соответствующий запрос (с тремя таблицами, добавится еще таблица ПОКУПАТЕЛЬ, так как в таблице ЗАКАЗ указан Код покупателя, а категория покупателя определяется в таблице ПОКУПАТЕЛЬ).

Многотабличные формы

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

Создадим многотабличную форму для представления данных о покупателе и купленных им товарах. Нажмем кнопку Создать. В качестве базовой таблицы выберем таблицу ПОКУПАТЕЛЬ, режим создания формы – Мастер форм. Нажмем кнопку ОК.

В следующем окне выберем нужные нам поля. Из таблицы ПОКУПАТЕЛЬ переместим в правое окно (Выбранные поля) поле Фамилия ИО, из таблицы ТОВАР – Наименование и Цена. Выбор таблиц производится в поле со списком Таблицы и запросы. Заметим,что таблицу связи ЗАКАЗ не надо указывать явно, система сама все сделает правильно. Нажмем кнопку Далее.

В следующем окне нам будет показан внешний вид создаваемой формы. Нас все устраивает: главная таблица – ПОКУПАТЕЛЬ, подчиненная – ТОВАР, выбран переключатель Подчиненные формы. Двинемся дальше. Согласимся с Табличным внешним видом формы и Стандартным стилем.

В последнем окне Мастера нам будет предложено ввести имена главной и подчиненной форм. Главную форму назовем "Покупатель – Товар", для подчиненной оставим предложенное системой имя. Нажмем кнопку Готово.

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

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

Задание 17.

1. Создать многотабличную форму "Товар – Покупатель", содержащую данные о том, какие покупатели (поля Фамилия ИО, Адрес и Телефон) купили указанный в главной таблице товар (поля Наименование и Цена).

2. Создать многотабличную форму "Категории товаров", в главной форме выводить значение категории товаров, в подчиненной – названия товаров этой категории.

ОТЧЕТЫ

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

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

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

Одноколонные отчеты

Создадим отчет “Покупатели”. Выберем закладку Отчет, нажмем кнопку Создать. Появится окно Новый отчет. В качестве источника данных возьмем таблицу ПОКУПАТЕЛЬ. Выберем мастера Автоотчет: в столбец. Нажмем кнопку ОК, дальше Access сам создаст отчет нужной формы. После закрытия окна отчета Access, как обычно, попросит ввести имя отчета, назовем его "Покупатели".

Можно создать отчет с помощью Мастера отчетов, при этом процесс разработки отчета будет происходить по шагам. Например, отчет по таблице ПОКУПАТЕЛЬ, но только без некоторых ненужных полей. В окне Новый отчет выберем пункт Мастер отчетов. Далееможно выбратьнужную таблицу или запрос и поля в ней (это могут быть и несколько таблиц или запросов, они указываются на следующем шаге). В качестве полей возьмем Фамилия ИО, Адрес, Телефон. Группировку делать не будем. Далее применим сортировку по фамилиям. В качестве типа отчета возьмем Табличный. Стиль выберем Строгий. Заголовок отчета пусть будет ПОКУПАТЕЛИ. После нажатия кнопки Готово будет показан вид отчета на странице. С помощью пиктограммы  Масштаб можно посмотреть крупный план и вид страницы. Пиктограмма  Печать выведет отчет на печать по страницам с предварительной настройкой в Окне управления печатью. После закрытия отчета система предложит ввести имя отчета, назовем его “Покупатели 1”.

Задание 18.

1. Изменить Заголовок отчета для последнего отчета на Список покупателей магазина “Все для Вас”. Для этого нажмем кнопку Конструктор. Щелкнем левой кнопкой на старом заголовке ПОКУПАТЕЛЬ. Вокруг поля появятся квадратики выделения. Теперь новый текст можно ввести непосредственно в поле, или поменять поле Подпись на вкладке Макет в свойствах этого поля. Введем текст: Список покупателей магазина “Все для Вас”. Теперь выделим введенное поле щелчком левой кнопки мыши, щелчком правой кнопки вызовем Свойства... . Выберем Размер шрифта 20, Насыщенностьполужирный, Выравнивание текстапо центру. Изменением границ выровняем заголовок, чтобы он хорошо смотрелся.

2. Вставить в конец отчета в Область примечаний отчета текст: Директор магазина <место для подписи> Миронова М.И. Для этого использовать элемент Надпись из Панели элементов.

Ленточные отчеты

Другой тип отчетов – Ленточный. Он имеет вид таблицы, каждая запись занимает одну строку. Такая форма удобна и в случаях необходимости подсчета промежуточных и окончательных итогов. Создадим ленточный отчет для таблицы ТОВАР, для чего выберем пункты Создать / Автоотчет: ленточный. После выбора таблицы и мастера вообще никаких вопросов со стороны системы не будет. С другой стороны, отчет будет содержать поле Код товара, которое в отчете в общем-то не нужно и используется для связи таблиц в базе данных.Ленточные отчеты удобны как полуфабрикат для дальнейшей настройки отчета в режиме Конструктора.

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

Задание 19.

Создать ленточный отчет “Сумма денег по покупателям” с двумя полями: Фамилия ИО и Стоимость.


Дата добавления: 2021-07-19; просмотров: 351; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!