Методические указания по
проектированию информационных систем
в среде MS ACCESS
на примере создания БД “Переговоры”.

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

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

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

В дальнейшем структура БД (количество таблиц и связь между ними), а также структура самих таблиц может быть изменена.

Рекомендуется эти таблицы нарисовать на бумаге, так как это не только помогает эффективно формировать БД, но и устанавливать связи между входящими в её состав таблицами.

2. Для создания любой таблицы требуется, чтобы любое, входящее в её состав поле, было описано рядом параметров, среди которых первичными являются три: название или имя поля, тип данных и размер (длина) поля.

Представим структуру таблицы “Телефон”.

Таблица 1. Структура таблицы "Телефон".

Поле Тип данных Размер Другие свойства
Номер телефона Числовой Длинное целое Совпадения не допускаются
Фамилия Текстовый 30
Имя Текстовый 25
Отчество Текстовый 30
Город Текстовый 30
Улица Текстовый 30
Дом Текстовый 5
Корпус Текстовый 5
Квартира Числовой Целое

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

Таблица 2.Структура таблицы "Город".

Поле Тип данных Размер Другие свойства
Код города Числовой Длинное целое Совпадения не допускаются
Название города Текстовый 30 Совпадения не допускаются
Коэффициент Числовой Одинарное с плавающей точкой Два знака после запятой

Таблица 3. Структура таблицы "Звонки".

Поле Тип данных Размер Другие свойства
Код звонка Счётчик Длинное целое Совпадения не допускаются
Кто (код города) Числовой Длинное целое Подстановка: Поле со списком
Кто (номер) Числовой Длинное целое Подстановка: Поле со списком
Куда (код города) Числовой Длинное целое Подстановка: Поле со списком
Кому (номер) Числовой Длинное целое
Дата Дата/время Дата Маска ввода: 00.00.0000
Продолжительность Числовой Длинное целое

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

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

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

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

Обычно можно задать три вида связей между таблицами: Один-ко-многим, Многие-ко-многим и Один-к-одному.

Наиболее часто используется тип связи между таблицами “Один-ко-многим”. В такой связи каждой записи в таблице "А" может соответствовать несколько записей в таблице “В” (поля с этими записями называют внешними ключами), а запись в таблице “В” не может иметь более одной соответствующей ей записи в таблице “А”. Такая связь создаётся, когда только одно из полей таблицы является ключевым или имеет уникальный индекс, т.е. значения в нём не повторяются.

При связи “Многие-ко-многим” одной записи в таблице “А” может соответствовать несколько записей в таблице “В”, а одной записи в таблице “В” – несколько записей в таблице “А”. Такая схема реализуется только с помощью третьей (связующей) таблицы, ключ которой состоит по крайней мере из двух полей, одно из которых является общим с таблицей “А”, а другое – общим с таблицей “В”. Она фактически представляет две связи типа “один-ко-многим” через третью таблицу, ключ которой состоит по крайней мере из двух полей, общих для двух других таблиц.

При связи “Один-к-одному” запись в таблице “А” может иметь только одну связанную запись в таблице “В” и наоборот. Этот тип связи используют редко, так как такие данные могут быть помещены в одну таблицу. Связь с отношением “Один-к-одному” применяют для разделения очень широких таблиц, для отделения части таблицы в целях её защиты, а также для сохранения сведений, относящихся к подмножеству записей в главной таблице. Она создается, когда оба связываемых поля являются ключевыми или имеют уникальные индексы.


3. Создадим базу данных “Переговоры” в Access.
Создание любой БД (в том числе “Переговоры”) целесообразно осуществлять на основе предварительно разработанной модели. Эта работа была проделана в п.2. Теперь приступим к реализации модели с помощью СУБД Access.

Для этого загрузим программу “Access”.
В открывшемся окне этой программы найдём кнопку “Файл” в верхней строке меню программы, откроем выпадающее меню “Файл” и активизируем в нём команду “Создать...”.

В появившемся окне “Создание файла” выберем пункт “Новая база данных”, активизируем его. В появившемся окне “Файл новой базы данных” найдём строку “Имя файла” и введём в неё имя проектируемой БД. Присвоим создаваемому в Access файлу имя “Переговоры” и нажмём на кнопку “Создать”. В результате в выбранной нами папке появится файл с именем “Переговоры.mdb”.

Рис.1. База данных "Peregovori".

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

В результате появится новое окно с именем “Peregovori: база данных” (Рис. 1) .

Для создания первой таблицы БД в левой колонке этого окна выбираем и активизируем кнопку “Таблицы”. При этом в правой части этого окна появляется три команды (три варианта создания таблиц в режиме конструктора, с помощью мастера или путём ввода данных), из которых предпочтительно выбрать режим создания таблицы с помощью мастера или конструктора.

Учиться создавать таблицы лучше в режиме конструктора, поэтому выбираем и активизируем вариант “Создание таблиц в режиме конструктора”. При этом откроется окно таблицы, в котором следует ввести сформированные ранее поля таблицы.

Создадим сначала, например, таблицу "Телефон". Её параметры описаны выше (см. Таблица 1). В левый столбец "ИМЯ ПОЛЯ" вводят имена полей, а в столбец "ТИП ДАННЫХ" - нужный тип данных для каждого из них, в правый столбец "ОПИСАНИЕ" вносят текстовые комментарии, которые при заполнении таблицы данными будут высвечиваться в последней строке окна в качестве подсказки (так сделает в таблице "Звонки").

Рис.2. Таблица "Телефон". Определение полей данных.

Закончив вводить в таблицу необходимые данные, закрываем ее, присвоив таблице имя "Телефон". Далее аналогичным образом создаем оставшиеся две таблицы (Рис. 5.3 и Рис. 5.4.).

Рис.3. Таблица "Город". Определение полей данных.

Рис.4. Таблица "Звонки". Определение полей данных.

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

4. Разработаем схему данных

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

Так, например, любой абонент может по телефону позвонить нескольким разным абонентам, поэтому связь между объектами (таблицами) "Телефон" и "Звонки" будет "Один-ко-многим" ().
В один и тот же город может позвонить много абонентов. В этом случае, связь между объектами (таблицами) "Город" и "Звонки" также будет "Один-ко-многим" ().
В одном и том же городе много абонентов телефонной связи (телефонных аппаратов). В этом случае связь между объектами (таблицами) "Город" и "Телефон", тоже будет "Один-ко-многим" ().

Информационно-логическая модель реляционной БД формируется в меню "Сервис" по команде "Схема данных". При этом автоматически открывается окно "Добавление таблиц", из которого с помощью кнопки "Добавить" поочередно переносят в модель все таблицы и нажимают кнопку "Закрыть".
От соответствующих полей подчинённых таблиц следует установить связи согласно определениям, сделанным в предыдущем пункте.
Например, для установления связи между таблицами "Город" и "Телефон" подводят курсор мыши к ключевому полю "Названия города" в таблице "Город", щёлкают левой кнопкой мыши и, не отпуская её, перетаскивают курсор на поле "Город" в таблицу "Телефон", а затем отпускают кнопку мыши. Схема выполненных связей БД "Переговоры" представлена на рис. 5.

Рис.5. Схема данных.

Если правой клавишей мыши "кликнуть" по какой-либо линии связи между таблицами, то откроется окно, в котором можно "Изменить связь…" или "Удалить связь".

Выберем режим "Изменить связь…". В открывшемся окне "Изменение связей":

1) установим флажок ("галочку") в свойстве "Обеспечение целостности данных", а затем;
2) установим флажки в свойствах "Каскадное обновление связанных полей" и "Каскадное удаление связанных записей" (Рис. 6).

Рис.6. Изменение связей.

При этом отредактированные записи в одной таблице (например, "Город"), связанные с записями другой (например, "Телефон"), изменятся в последней автоматически. Аналогично, удаление данных из одной таблицы, связанной с какой-либо другой таблицей, повлечет удалении данных из обеих таблиц.

По окончании установления связей окно схемы данных закрывают, сохранив её макет.

5. Рассмотрим формирование подстановки "Поле со списком".

Осуществим эту работу следующим образом:

Рис.7. Построитель запросов. Поле со списком.

В результате в свойствах поля "Кто (код города)" таблицы "Звонки" в закладке "Подстановка" будут внесены данные, представленные на Рис. 8 .

Рис.8. Таблица "Звонки". Поле со списком.

Аналогичные процедуры выполняются для полей "Кто (номер)" и "Куда (код города)". В результате будет создан "скелет" БД "Переговоры". Теперь необходимо определить её содержание.

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

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

Создать форму можно несколькими способами: с помощью конструктора, мастера автоформ и др. (Рис. 9).

Рис.9. Окно создания новых форм.

Для создания формы, например, "Город", выполяют следующие действия:

• находясь в объекте "Таблицы", выбирают таблицу "Город", а в верхнем меню "Вставка" - режим "Форма";
• В появившемся окне "Новая форма" выбирают режим, например, "Автоформа: в столбец" и нажимают на кнопку "ОК".

При этом будет создана форма для ввода данных в таблицу "Город". Её требуется сохранить, дав ей имя, например, "Город" (Рис. 10).

Рис.10. Вариант формы "Город".

Если требуется корректировка и доработка формы, то для перехода в режим конструктора необходимо в верхнем меню "Вид" выбрать команду "Конструктор". Возврат в режим работы с формой осуществляется через команду "Режим формы" в верхнем меню "Вид". Можно корректировать форму другим способом: перейти в объекты "Форма", выбрать нужную форму и кликнуть по кнопке "Конструктор".

Для создания формы "Абонент" воспользуемся мастером создания форм:

•в поле "Таблицы и запросы" выберем "Таблица: Телефон" (Рис. 11); из доступных полей выберем все (в общем случае, при необходимости можно варьировать какие поля и в какой последовательности выводить в форме).

Рис.11. Мастер создания форм. Поля.

• выбираем внешний вид формы, в нашем случае "в один столбец" (Рис. 12).

Рис.12. Мастер создания форм. Внешний вид.

•следующий шаг - определение стиля формы. Выберем стандартный стиль (Рис. 13).

Рис.13. Мастер создания форм. Стиль.

•в заключение процедур с Мастером создания форм, зададим имя формы (Рис. 14) и откроем её для ввода данных .

Рис.14. Мастер создания форм. Имя.

В итоге, разработанная с помощью Мастера форма будет выглядеть следующим образом (Рис. 15).

Рис.15. Форма "Абонент".

Аналогично, любым из описанных способов создаём форму для последней таблицы "Звонки".

Формирование подстановки "Поле со списком" можно сделать при редактировании форм.
Делают это следующим образом.

В форме "Города", например, таким образом, создадим поле "Города". Для этого вызовем эту форму и перейдём в режим конструктора форм. Затем в панели элементов нажмём мышью на элемент "Поле со списком" и, установив курсор мыши в нужном месте экрана, потянем его вправо и вниз формируя это поле. Изначально оно состоит из двух частей: элемента с названием формируемого поля и собственно самого поля.

Встав в название поля, можно изменить его размеры, шрифт и само название. Вызвав правой клавишей мыши выпадающее меню самого поля, надо перейти в команду "Свойства" и в выпавшем окне свойств данного поля установить следующие параметры:

• Для поля "Данные" выбрать из таблицы имя поля формируемого списка.
• Для поля "Тип источника строк" установить режим "Таблица и запрос", а в поле "Источник строк" сформировать запрос.
• Для этого надо нажать на самую правую кнопку в этом поле [...] и в строках запроса "Поле" "Имя таблицы" установить необходимые данные. Для того, чтобы в форме в поле со списком появлялись названия городов, нужно в первых двух колонках запроса в строку "Поле" установить название поля с названиями городов из таблицы "Город", имя которой автоматически отразится в строке "Имя таблицы".

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


1 шаг. (Рис. 16)

2 шаг. (Рис. 17)


3 шаг. (Рис. 18)

4 шаг. (Рис. 19)


5 шаг. (Рис. 20)

6 шаг. (Рис. 21)


На предыдущих рисунках 16-21 представлены пошаговые операции в Мастере создания полей (Поле со списком).

Рассмотрим пример формирования переключателей с помощью "Панели элементов". Можно создавать как одиночные, так и групповые переключатели.

Одиночный переключатель удобно использовать одновременно с полем таблицы, в котором устанавливается один из двух взаимоисключающих параметров, например, в таблицу "Телефон" можно включить поле "Пол", которое имеет два логических значения (Да/Нет). В этом случае групповой переключатель будет использоваться для выбора пола абонентов (мужского или женского). Форма создания такого переключателя представлена на рис. 22 - 25.


1 шаг. (Рис. 22)

2 шаг. (Рис. 23)


3 шаг. (Рис. 24)

4 шаг. (Рис. 25)

7. Теперь заполним все таблицы необходимыми данными.

В каждой таблице должно быть не менее десяти записей !!!

Рис.26. Таблица "Телефон". Данные.


Рис.27. Таблица "Город". Данные.


Рис.28. Таблица "Звонки". Данные.


8. Сортировка данных

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

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

Сначала выбирают поля, используемые для сортировки, помещая курсор в любую его запись. После этого щёлкают по кнопке сортировки и данные отображаются в отсортированном порядке. По умолчанию в Access сортировка записей начинается с крайнего левого выделенного столбца. При этом записи таблицы будут отсортированы сначала по крайнему левому выделенному столбцу, затем (для одинаковых значений в первом сортируемом столбце) - по второму и т.д. Если нужно восстановить порядок отображения записей, используют команду "Записи", "Удалить фильтр".

Отбор данных с помощью фильтра

Фильтр - это набор условий, применяемых для отбора подмножества записей. В Access существуют фильтры четырёх типов: 1) по выделенному фрагменту, 2) обычный, 3) расширенный и 4) по вводу.

Фильтр по выделенному фрагменту - это способ быстрого отбора записей по выделенному образцу.
Например, нужно просмотреть в таблице записи только о конкретном абоненте. Для этого выделяют фамилию абонента в таблице "Телефон" (становятся в любую ячейку таблицы с его фамилией), нажимают правую клавишу мыши и щёлкают по кнопке "Фильтр по выделенному". Access выбирает записи, для которых значение в соответствующем столбце (например, "Фамилия") равно тексту, соответствующему выбранной фамилии. При этом в строке состояния окна таблицы присутствует слово "ФЛТП", а кнопка с изображением воронки на панели инструментов - кнопка фильтрования, затенена. Это означает, что используется фильтр. При нажатии на неё происходит отключение всех фильтров.

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

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

Более сложные условия фильтрации можно задать, если перейти в меню "Записи" и в команде "Фильтр" выбрать пункт "Расширенный фильтр...".

Средства сортировки, фильтрации, поиска и замены данных реализованы в Access как автоматически создаваемые запросы данных.

9. Создание запросов

Конструирование запроса проводиться в 3 этапа:

1. Выбор полей,
2. Условия отбора нужных записей данных,
3. Сортировка записи БД.

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

В окне "Создание простых запросов" (Рис. 29) выберем таблицу "Звонки", а из неё выберем поля: "Кто (код города)", "Кто номер", "Куда (код города)", "Кому (номер)", "Дата", "Продолжительность", нажмём кнопку "Далее".

Рис.29. Создание простых запросов.


Затем в следующем окне выберем вариант "Подробный отчёт", и перейдём по кнопке "Далее" в следующее окно. Зададим имя запроса, например, "Москва" и режим открытия запроса для просмотра данных, а затем нажмём кнопку "Готово".

В итоговой таблице запроса будут выведены все имеющиеся звонки. Необходимо выбрать только звонки в Москву. Для этого в режиме конструктора откроем запрос "Москва" . В поле "Куда (код города)" введём условие отбора, а именно, равенство коду города Москвы (495). Теперь для всех строк запроса это поле будет одинаковым. Чтобы не выводить его на экран, убирём соответствующую галочку.

Рис.30. Запрос "Москва". Конструктор.


В результате выполнения такого запроса получитсятаблица, представленная на рис. 31 .

Рис.31. Запрос "Москва".

В данном случае сортировка была осуществлена по поля "Дата".

Аналогичным образом можно создать запросы: "ИнфоГород" (Рис. 32) и "Город без абонентов" (Рис. 33) по таблице "Город", запрос "Переговоры абонентов" по таблицам "Телефон", "Звонки" и "Город" (Рис. 3, Рис. ).

Запрос "ИнфоГород" выдаёт информацию по городам, отсортированным по возрастанию (использованы все поля таблицы "Город", но в ином виде, удобном для пользователя).

Рис.32. Запрос "ИнфоГород".

Запрос "Город без абонентов" выдает информацию (код города и название) тех городов, в которых не проживает ни один из абонентов, имеющихся в нашей базе данных "Переговоры" (Рис. 33).

Рис.33. Запрос "Город без абонентов".

Запрос "Переговоры абонентов" выдаёт подробную информацию по телефонным переговорам всех абонентов. Какие поля были выбраны, из каких таблиц, в каком порядке, а так же установленные свойства можно узнать, обратившись к Рис. 34.

Рис.34. Запрос "Переговоры абонентов". Конструктор.

Сортировка ведётся по четырём полям "Фамилия", "Имя", "Отчество", "Дата" и именно в такой последовательности. (Рис. 35).

Рис.35. Запрос "Переговоры абонентов".

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

Рис.36. Запрос "Переговоры Коэф". Конструктор.

В результате запрос "Переговоры Коэф" должен выглядеть следующим образом (Рис. 37).

Рис.37. Запрос "Переговоры Коэф".

Создадим запрос "Переговоры Стоимость". Для этого используем не таблицу, как это делалось ранее, а запрос "Переговоры Коэф". Выберем все поля, но отобразим не все и в следующем порядке: "Фамилия", "Имя", "Отчество", "Дата", "Продолжительность" (звонка), "Город" (откуда звонит абонент), "Название города" (куда звонит абонент). Создадим два новых поля: "Стоимость мин" (минуты разговора) и "Итог" (сумма за звонок) - Рис. 38.

Рис.38. "Переговоры Стоимость". Конструктор.

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

Рис.39. Построитель выражений. Поле "Стоимость мин".

Вычислим стоимость всего разговора. Это стоимость минуты, умноженная на "Продолжительность" разговора (Рис. 40).

Рис.40. Построитель выражений. Поле "Итог".

Для полей "Стоимость мин" и "Итог" установим формат "Денежный" в "Свойствах поля". В итоге, запрос "Переговоры Стоимость" примет вид (Рис. 41).

Рис.41. Запрос "Переговоры Стоимость".


10. Создание отчётов

Создадим отчёт "Стоимость услуг", в котором сформируем данные для каждого абонента о том, когда, куда он звонил, как долго разговаривал. Ввыведем стоимость минуты каждого конкретного разговора и итог к оплате.

Для этого выберем объект "Отчёты", режим "Создание отчёта с помощью мастера". В открывшемся окне выберем запрос "Переговоры Стоимость", выделим необходимые поля. Выбираем группировку по четырём полям "Фамилия", "Имя", "Отчество", "Город" (в котором проживает абонент). По этим же полям устанавливаем сортировку по возрастанию.

Выберем макет "Блок" и ориентацию "Альбомная" для отчёта. Установим флажок "Настроить ширину полей для размещения на одной странице". Ззатем, в следующем окне, выберем стиль отчёта, например, строгий, а в последнем окне, зададим имя отчёта - "Стоимость услуг". Нажмём кнопку "Готово".

В результате получится готовый отчёт, который можно хранить в БД, а также распечатать (Рис. 42).

Рис.42. Отчет "Стоимость услуг".

Самостоятельно создайте отчёт "Переговоры абонентов", в котором сформируйте данные по переговорам для каждого абонента дата звонка; город, куда звонил; номер телефона, по которому звонил; длительность разговора (Рис. 43).

Рис.43. Отчет "Переговоры абонентов".

Заметим что, если в отчёт необходимо включить какие-либо математические действия, например, вычисление среднего балла, полученного учащимся по нескольким дисциплинам или в процессе изучения одной дисциплины, то поступают следующим образом:
1) Обычным образом в режиме Мастера создают отчёт, включив в него необходимые существующие поля таблиц. Полученный отчёт открывают и переходят в режиме "Конструктор". Активизируют элемент "Поле" в "Панели элементов" и вставляют его в "Область данных" отчёта.
Это поле состоит из двух частей: имени и содержания поля. Текст, автоматически созданный в части "имя поля", можно заменить, в части "содержание поля". По правой клавише мыши вызывают меню, в котором активизируют команду "Свойства". В появившемся окне переходят в строку "Данные" и нажимают на самую правую кнопку [...], которая вызывает окно "Построитель выражений". С помощь встроенных в него элементов строят, например, следующее выражение: "=([Зачет №1]+[Зачет №2]+[Зачет №3])/3".
2) Для оценок типа среднего балла следует в строке "Число десятичных знаков" установить цифру "1". По окончании выполнения этих процедур нажимают кнопку "OK".

Чтобы проверить и убедиться в том, что в Отчёте появились необходимые данные, надо перейти в меню "Вид" и выбрать в нём режим "Предварительный просмотр".

Сайт создан в системе uCoz