Раздел 2. Лабораторный практикум




Лабораторная работа 1

Задание 1

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

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

 

Задание 2

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

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

В большой таблице бывает необходимо быстро отыскать нужную запись. Для этого служит кнопка Найти на главной вкладке меню. Найдите в таблице Товары марку Ravioli Angelo и определите код этого товара.

 

Задание 3

Изначально строки таблицы упорядочены по возрастанию ключевого поля (кода товара). Для удобства поиска информации существует возможность сортировки таблицы по любому из атрибутов. Для этого рядом с названием атрибута имеется управляющая кнопка. Нажав ее, вы можете выбрать способ сортировки. Обратите внимание, что способы сортировки зависят от типа данных (от А до Я для текстовых полей, от максимального к минимальному – для числовых, от установленных к снятым – для логических).

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

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

Еще раз отмените сортировку и отсортируйте таблицу по логическому полю Поставки прекращены.

 

Задание 4

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

Отмените фильтр и установите новый так, чтобы видеть одновременно мясные (мясо/птица) и рыбные продукты.

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

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

 

Задание5

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

При вводе вы заметите разницу между типами данных различных атрибутов. Так, атрибут КодТовара не вводится вручную, а формируется автоматически (тип данных Счетчик).

Атрибуты Марка и ЕдиницаИзмерения вводятся произвольно (тип данных Текстовый).

Атрибуты Тип и Поставщик выбираются из предложенного списка (использован Мастер подстановок).

Атрибут Цена вводится произвольным дробным числом без наименования, никакие символы, кроме цифр и запятой не допускаются. Наименование «р» и пробелы добавляются автоматически (тип данных Денежный).

Атрибуты НаСкладе, Ожидается и МинимальныйЗапас вводятся произвольным целым числом, никакие символы, кроме цифр не допускаются (тип данных Числовой целый).

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

 

Задание 6

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

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

 
 

 


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

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

 

 

Задание 7

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

 

 
 


Из этой схемы мы видим, какие информационные объекты фигурируют в

 

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

 

Лабораторная работа 2

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

 

Задание 1

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

Создание базы данных начинается с обращения к представлению Backstage (вкладка Файл), Создать, Новая база данных (см. рис. 2.4).

 

Рис. 2.4

В правой части окна, в разделе Новая база данных, в поле Имя файла вводим имя файла базы данных «БД1» и определяем место хранения этого файла (см. рис. 2.5).

 

Рис. 2.5

 

Открывается таблица в режиме отображения содержания (см. рис. 2.6).

 

 

Рис. 2.6

 

Задание 2

Создаем структуру таблицы Клиенты.

 

Нажатием на кнопку переходим в режим Конструктора, при этом
Access предлагает ввести имя таблицы (см. рис. 2.7).

 

 

 

Рис. 2.7

 

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

Второе, третье и четвертое поля – «Фамилия», «Имя », «Отчество» – текстовые. Для ускорения ввода и избежания ошибок ввода повторяющиеся данные лучше копировать.

Поле «Вид бизнеса» содержит ограниченный набор элементов. Для ускорения ввода и избежания ошибок ввода это поле следует заполнять с использованием Мастера подстановок.

В поле «Дата начала работы» в свойствах поля, в строке «Формат поля» выбрать «Краткий формат даты» (см. рис. 2.8). Данные вводить данные мы будем с помощью всплывающего «Календаря».

 

 

Рис. 2.8

 

 

По содержанию задачи поле «Скидка» может содержать значения больше 0 и меньше 1, поэтому в свойствах поля в строке «Размер поля» выбрать «Одинарное с плавающей точкой».

Поле «Место жительства» имеет текстовый тип данных и заполняется аналогично полям «Фамилия», «Имя », «Отчество».

В поле «Наличие кредита» проставляется факт использования кредита «Да» или «Нет». Поэтому удобно выбрать тип данных – «Логический».

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

 

 

Рис. 2.7

 

Задание 3

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

Рис. 2.10

 

Лабораторная работа 3

Рассмотрим, как связаны между собой таблицы в базе данных «Торговля». В лабораторной работе №1 вы уже видели схему данных этой БД (см. рис. 2.3), сейчас разберем ее более детально.

 

Задание 1

Откройте свою копию БД «Торговля», перейдите в главном меню на вкладку Работа с базами данных и нажмите кнопку Схема данных. На схеме связи между таблицами изображены в виде линий, соединяющих одноименные поля таблиц. Линии снабжены маркерами «1 » (один) и «∞» (много). Как видно на схеме, все связи в нашей БД относятся к типу «один-ко-многим».

 

 

Рис. 2.11

Выделите мышью связь между таблицами Поставщики и Товары и удалите ее. Теперь установите связь заново, путем перетаскивания мышью имени поля из одной таблицы в другую на соответствующее ему связанное поле. После перетаскивания открывается окно диалога Изменение Связей, в котором можно задать свойства образующейся связи (см. рис.2.11).

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

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

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

Закройте базу данных Торговля.

 

Задание 2

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

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

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

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

Ключевым полем назначим порядковый номер КодПлана (тип данных – счетчик). Каждому плану дадим привлекательное название, т.е. следующим полем будет Название (тип данных – текстовый). Чтобы не слишком усложнять задачу, договоримся, что тарифные планы будут описываться двумя атрибутами – стоимостью секунды разговора внутри своей сети и вне ее (тип данных – денежный). И, наконец, последний атрибут тарифного плана Тип тарификации – посекундный или поминутный. Чтобы не вводить длинные слова многократно и не допускать ошибок, при выборе типа данных воспользуемся мастером подстановок (см. рис. 2.12). Выберите вариант «Будет введен фиксированный набор значений», нажмите кнопку Далее. Введите в столбец нужные значения, как показано на рисунке 2.12 и нажмите кнопку Готово.

 
 

 


Рис. 2.12

 

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

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

 

Задание 3

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

Для абонентов мы будем хранить в таблице фамилию (тип данных текстовый). Некоторым абонентам будут предоставляться льготы: тип данных числовой с плавающей точкой, формат поля – процентный, значение по умолчанию – 0, условие на значение – >=0 and <1. Еще один атрибут абонента – тарифный план. Он устанавливается с помощью мастера подстановок последовательным выбором «Объект … получит значение из другой таблицы или запроса», далее выбрать таблицу Тарифы, выбрать из доступных полей КодПлана и завершить работу мастера.

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

 

Задание 4

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

Ключевое поле КодЗвонка, тип данных – счетчик.

НомерТелефона звонившего – через Мастер подстановок связывается с ключевым полем НомерТелефона таблицы Абоненты.

НомерВызываемого – тип данных текстовый, размер поля 10, данные вводятся произвольно, звонить можно абонентам как своей сети, так и любой другой.

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

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

 

Задание 5

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

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

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

Закройте окно Схема данных, сохранив макет.

 

Задание 6.

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

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

И, наконец, в таблицу звонков введите 15 записей. Обязательно предусмотрите, чтобы там присутствовали звонки как внутри сети (номер вызываемого начинается с 999), так абонентам других операторов (номер вызываемого начинается с других цифр). Часть звонков должна быть короткими (1-2 секунды), остальные звонки большей длительности.

 

Лабораторная работа 4

Построение запросов для простейшей базы

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

 

Задание 1.

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

В режиме Конструктора в строку «Условия отбора» в соответствующие поля вводим два критерия (см. рис. 2.13)

 

 

Рис. 2.13

 

Результат выполнения запроса в режиме просмотра показан на рисунке 2.14.

 

Рис. 2.14

Задание 2.

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

 

 

 

Рис. 2.15

 

Для этого в режиме Конструктора в строку «Условия отбора» введите в соответствующие поля критерии отбора, как показано на рисунке 2.15. Результат выполнения запроса приведен на рисунке 2.16.

 

 

Рис. 2.16

 

Задание 3.

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

При создании этого запроса необходимо ввести в строку «Условие отбора» фразу [Введите название города] вместе с квадратными скобками, как показано на рисунке 2.17. Скобки означают, что при выполнении запроса стоящая в них фраза будет высвечиваться в окне приглашения для ввода параметра.

 

 

 

Рис. 2.17

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

 

 

 

Рис. 2.18

 

Задание 4.

Создадим запрос, подсчитывающих количество клиентов по каждому виду бизнеса.

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

 

Выполним группировку по полю «Виду бизнеса» и подсчитаем количество клиентов по полю «Фамилия», как показано на рисунке 2.19.

 

 
 

 


Рис. 2.19

 

Результат выполнения запроса можно увидеть на рисунке 2.20.

 

Рис. 2.20

 

 

Задание 5.

Просчитайте количество клиентов фирмы в городах Сухой Лог и Реж (отдельно для каждого города).

Для построения запроса снова используем «Групповые операции».На рисунке 2.21 показан запрос в режиме конструктора и в режиме просмотра результатов.

 

 

 

Рис. 2.21

 

Задание 6.

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

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

 

 

Рис. 2.22

 

Задание 7.

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

Рассмотрим один из способов решения поставленной задачи. Для нахождения искомого значения построим два вспомогательных запроса. В первом подсчитаем количество клиентов имеющих кредит и проживающих в Реже (см. рис. 2.23). Второй аналогичным образом построим для Екатеринбурга.

 

 

Рис. 2.23

 

Итоговый запрос будем строить на базе двух вспомогательных запросов.

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

 

 

Рис. 2.24

 

 

На рисунке 2.25 виден результат выполнения запроса. Результатом в данном случае буден единственное числовое значение.

 

 

Рис. 2.25

 

Лабораторная работа 5

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

 

Задание 1.

Постройте запрос на выборку абонентов-льготников. Условием отбора будет наличие льготы, т.е. Льгота>0.

 

Задание 2.

Постройте запрос для поиска номера телефона по фамилии абонента.

 

Задание 3.

Постройте запрос на основе таблицы звонков для отбора вызовов внутри сети. Это значит, что номер вызываемого абонента должен начинаться с 999. Для этого в строке Условие отбора для атрибута НомерВызываемого укажите либо шаблон "999*", либо специальный оператор сравнения Like "999*" (см. приложение). Такое условие приведет к отбору записей, у которых поле НомерВызываемого начинается с трех девяток.

 

Задание 4.

Постройте запрос на основе таблицы звонков для отбора вызовов вне своей сети. Это значит, что номер вызываемого абонента НЕ должен начинаться с 999. Для этого в строке Условие отбора для атрибута НомерВызываемого введите not Like "999*". Такое условие приведет к отбору записей, у которых поле НомерВызываемого НЕ начинается с трех девяток.

 

Задание 5.

Постройте запрос на основе таблицы звонков для отбора вызовов абонентов выбираемой пользователем компании. Это значит, что номер вызываемого абонента должен начинаться с введенных пользователем в диалоговом окне цифр (знакомый вам запрос с параметром). Условие отбора в данном случае должно быть таким: Like [Введите значение]+"*".

 

Задание 6.

Постройте запрос на основе таблицы звонков для отбора вызовов продолжительностью от 3 до 30 секунд.

 

Задание 7.

Постройте запрос на основе таблицы звонков для подсчета количества внутрисетевых вызовов (подсказка: используйте групповую операцию Count).

 

Задание 8.

Постройте запрос на основе таблицы звонков для подсчета средней продолжительности разговора (подсказка: используйте групповую операцию Avg).

 

Задание 9.

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

Задание 10.

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

 

Задание 11.

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

 

Задание 12.

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

стоим_внутр: [Звонки]![Продолжительность] *

[Тарифы]![Стоим_сек_внутр] * (1-[Абоненты]![Льгота])

 

Задание 13.

Для поставщика услуг связи необходимо выставлять клиентам счета за обслуживание, в которые включена плата за все звонки, как внутренние, так и внешние. Можно вычислить стоимость внешних звонков подобно предыдущему заданию, но вычислить и просуммировать таким способом стоимость всех звонков не удастся. Придется с помощью построителя выражений строить сложную формулу с использованием встроенной функции IIf (аналогична функции ЕСЛИ в MS Excel). Общий вид функцииIIf (условие; значение если истина; значение если ложь)

В нашей задаче условие:

[Звонки]![Номер_вызыв] Like "999*",

значение если истина: [Звонки]![Продолжительность]*[Тарифы]![Стоим_сек_внеш]*(1-[Абоненты]![Льгота]),

значение если ложь: [Звонки]![Продолжительность]*[Тарифы]![Стоим_сек_внеш]*(1-[Абоненты]![Льгота]).

На рисунке 2.28 показано, как выбрать описанную функцию (Встроенные функции ® Управление ® IIf), и как выглядит построенное выражение.

 
 

 


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

 

Задание 14.

На основе запроса из предыдущего задания постройте запрос для вычисления стоимости всех звонков для конкретного абонента по указанному номеру телефона.

 

Лабораторная работа №6

Таблицы и запросы, построенные нами для БД «Телефонная компания», представляют собой основу базы данных, можно сказать, ее кухню. Они видны только разработчику базы, но не ее пользователю. Для общения с пользователем служат формы и отчеты – экранные и печатные документы, позволяющие выполнять информационное обслуживание бизнес-процессов, не зная структуры и способов работы в СУБД MS Access.

В этой лабораторной работе мы создадим формы для ввода и просмотра данных нашей БД.

 

Задание 1.

Откройте БД «Телефонная компания» и выберите вкладку Создание, а на ней Мастер форм. Создадим форму для ввода данных в таблицу абонентов. Выберем нужную таблицу и перенесем все содержимое из окна Доступные поля в окно Выбранные поля, как показано на рисунке 2.29.

 
 


 

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

 

 
 

 


Задание2.

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

 

Задание3.

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

 

Задание 4.

Иногда бывает необходимо на одной форме отображать данные сразу двух таблиц, например, выбрав конкретного абонента, видеть перечень его звонков (главная и подчиненная форма). Создадим с помощью Мастера такую форму. Для этого на этапе выбора перенесем в окно Выбранные поля последовательно поля из таблиц Абоненты и Звонки. Далее выделим таблицу Абоненты, после чего Access предложит нам соответствующий нашей задаче вид представления данных (см. рис. 2.31).

 

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

 

Рис. 2.32

Задание 5.

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

 

Задание 6.

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

 

Лабораторная работа №7

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

 

Порядок создания отчета с помощью Мастера.

1. Откройте вкладку Создание и нажмите на ленте кнопку Мастер отчетов.

2. В качестве источника данных выберите таблицу или запрос ® Далее.

3. Выберите поля для отчета ® Далее.

4. При необходимости установите уровни группировки, т.е. укажите, по каким признакам будут группироваться записи в отчете ® Далее.

5. Можно выбрать порядок сортировки записей в отчете по одному или нескольким полям (пропустите этот шаг) ® Далее.

6. Выберите вид макета для отчета ® Далее.

7. Задайте название отчета. Затем можно открыть отчет для просмотра либо для редактирования – выберите просмотр ® Готово.

8. Просмотрите и закройте отчет.

Затем созданный отчет можно открыть в режиме конструктора и внести необходимые изменения.

Задание 1

В базе данных Телефонная Компания с помощью Мастера создайте отчет на основе запроса о льготниках. Сохраните отчет под именем Льготники1 и просмотрите полученный результат.

 

Задание 2

Сделайте копию отчета Льготники1 (скопируйте и вставьте в этом же окне). Назовите полученную копию Льготники2. Откройтеэтот отчет в режиме конструктора для внесения изменений. В разделе Заголовок измените заголовок отчета на такой: «Абоненты, имеющие право на льготы». В разделе Примечание отчета добавьте надпись: «Ознакомлен __________ инспектор Иванов И.И.».

Для добавления надписи сначала расширьте мышью раздел Примечание отчета – он находится в самом низу и может быть вообще не виден. Затем



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-02-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: