211 73 810KB
Russian Pages [84]
ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ
ЮЖНО-УРАЛЬСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ 681.3.06(07) М749
В.В. Мокеев, Фот Е.Я
ИНФОРМАЦИОННЫЕ СИСТЕМЫ. РАЗРАБОТКА БАЗ ДАННЫХ В СРЕДЕ MS ACCESS-97 Учебное пособие для лабораторных работ
Челябинск 2004
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ ЮЖНО-УРАЛЬСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ Кафедра «Информационные системы»
681.3.06:519.6(075.8) М749
В.В. Мокеев, Фот Е.Я
ИНФОРМАЦИОННЫЕ СИСТЕМЫ. РАЗРАБОТКА БАЗ ДАННЫХ В СРЕДЕ MS ACCESS-97
Челябинск Издательство ЮУрГУ 2004 1
УДК [681.3.06: 519.6](075.8) Мокеев В.В., Фот Е.Я. Информационные системы. Разработка баз данных в среде MS ACCESS-97: Учебное пособие по лабораторным работам. – Челябинск: Изд. ЮУрГУ, 2003. – 83 с. Пособие содержит изложение основ проектирования и создания баз данных в среде СУБД MS Access-97. Систематическая подача материалов в виде последовательных уроков, содержащих технологии решения конкретных задач, позволяет быстро освоить современные принципы и способы построения автоматизированной системы, способной обеспечить оптимальность и своевременность принимаемых решений. Учебное пособие предназначено для лабораторных работ по курсам: «Информационные системы» специальности 351400 – «Прикладная информатика в управлении/юриспруденции», «Информационные системы» специальности 350800 – «Документоведение и документационное обеспечение управления», «Информационные технологии в управлении» специальности 350300 – «Регионоведение». Илл.—45, табл.—13, прил.—9, список лит.—0 назв. Пособие одобрено учебно-методической "Экономика и предпринимательство".
комиссией
факультета
Рецензенты: В.Д. Гунченко, Е.К. Резников
© Мокеев В.В., Фот Е.Я., 2004. © Издательство ЮУрГУ, 2004.
2
ОГЛАВЛЕНИЕ ВВЕДЕНИЕ 4 ТЕМА 1. ПРОЕКТИРОВАНИЕ ТАБЛИЦ В БАЗЕ ДАННЫХ Урок 1.1. Проектирование базы данных 5 ТЕМА 2. СОЗДАНИЕ ТАБЛИЦ Урок 2.1. Разработка таблиц в режиме Конструктора 15 Урок 2.2. Ввод и редактирование данных в режиме таблицы 18 ТЕМА 3. ВВОД ИНФОРМАЦИИ В ТАБЛИЦЫ С ПОМОЩЬЮ ФОРМ И ПЕЧАТЬ ТАБЛИЦ Урок 3.1. Разработка однотабличных пользовательских форм 21 Урок 3.2. Печать данных 24 ТЕМА 4. СОЗДАНИЕ ЗАПРОСОВ Урок 4.1. Поиск, фильтрация и сортировка данных 26 Урок 4.2. Формирование запросов 31 ТЕМА 5. СОЗДАНИЕ ОТЧЁТОВ Урок 5.1. Разработка детального отчёта 36 ТЕМА 6. ПРОЕКТИРОВАНИЕ МНОГОТАБЛИЧНОЙ БАЗЫ ДАННЫХ Урок 6.1. Установление связей между таблицами 40 ТЕМА 7. СОЗДАНИЕ ФОРМ ДЛЯ МНОГОТАБЛИЧНОЙ БАЗЫ ДАННЫХ Урок 7.1. Разработка многотабличной пользовательской формы ввода данных 44 ТЕМА 8. СОЗДАНИЕ ЗАПРОСОВ ДЛЯ МНОГОТАБЛИЧНОЙ БАЗЫ ДАННЫХ Урок 8.1. Формирование простых запросов 51 Урок 8.2. Вычисление итоговых значений с помощью перекрёстных запросов 56 ТЕМА 9. СОЗДАНИЕ ОТЧЁТОВ ДЛЯ МНОГОТАБЛИЧНОЙ БАЗЫ ДАННЫХ Урок 9.1. Разработка многотабличной формы отчёта вывода данных 61 ТЕМА 10 ДИСПЕТЧЕР КНОПОЧНЫХ ФОРМ Урок 10.1. Разработка кнопочной формы 63
3
ВВЕДЕНИЕ Учебное пособие предназначено для лабораторных работ по курсам: «Информационные системы» специальности 351400 – «Прикладная информатика в управлении/юриспруденции», «Информационные системы» специальности 350800 – «Документоведение и документационное обеспечение управления», «Информационные технологии в управлении» специальности 350300 – «Регионоведение». Цель пособия – помочь студентам быстро и эффективно освоить теоретические и прикладные основы проектирования и построения информационных систем, основанных на базах данных с целью автоматизации информационных процессов организационного управления в государственных и коммерческих структурах, а также для проведения финансового, производственного и других видов анализа их деятельности. В результате изучения студенты должны овладеть практическими навыками анализа и описания определённой предметной области и построения корректной информационно-логической модели, получить представление о современных принципах и способах построения автоматизированной системы хранения и обработки информации в определённой предметной области, практически освоить современные технологии и инструментальные средства построения таких систем, получить навыки проектирования и разработки баз данных. Все учебное пособие разбито на отдельные уроки, сгруппированные по темам. Каждый урок представляет собой сформулированную задачу, касающуюся конкретной темы. Всю необходимую для успешного понимания и освоения темы информацию студент должен прочесть в краткой справке, предваряющей тему. Дополнительный материал по наиболее важным темам приведен в Приложениях. Самостоятельно, следуя подробной технологии выполнения задания, каждый шаг которой объяснен и снабжен иллюстрацией, студент в индивидуальном темпе осваивает способы и приемы работы в СУБД MS Access-97. Каждый урок заканчивается контрольными вопросами, позволяющими определить степень понимания студентами темы и заострить внимание на основных моментах. В качестве текущего контроля предусмотрено самостоятельное задание, выполняя которое, студент должен закрепить полученный опыт.
4
ТЕМА 1. ПРОЕКТИРОВАНИЕ ТАБЛИЦ В БАЗЕ ДАННЫХ Урок 1.1. Проектирование базы данных Краткая справка База данных (БД) – структурированная совокупность взаимосвязанных данных в рамках некоторой предметной области, предназначенная для длительного хранения во внешней памяти ЭВМ и постоянного применения. Реляционные БД – базы данных с табличной формой организации информации. Реляционная БД состоит из одной или нескольких взаимосвязанных таблиц (см. Приложение 2). Цели разработки БД: • возможность хранения всех необходимых данных, касающихся предметной области; • возможность обработки данных, хранящихся в БД; • исключение избыточности данных, хранящихся в БД. Цели, которые нужно достичь при проектировании базы данных: • сведение к минимуму числа хранимых в БД таблиц; • нормализация таблиц для упрощения решения проблем, связанных с обновлением и удалением данных. Разработка базы данных заключается в тщательной проработке структуры БД и последующего непосредственного создания БД в среде выбранной СУБД (см. Приложение 1) и состоит из нескольких основных шагов: • проектирование базы данных; • создание таблиц, составляющих БД; • создание форм для ввода данных; • создание запросов для статистической обработки данных; • создание отчётов для формирования выходных документов; • заполнение базы данных и её тестирование. Проектирование базы данных включает три стадии: • стадия формулировки требований, который заканчивается составлением технического задания; • стадия проектирования, который заканчивается разработкой информационно-логической модели. • стадия реализации, на которой создаются таблицы, формы, запросы и отчёты. На стадии формулировки требований выполняется анализ предметной области на основе информационных потребностей будущих пользователей разрабатываемой базы данных. Эту стадию принято называть концептуальным
5
проектированием базы данных, результатом которого является разработка концептуальной модели и выпуск технического задания. Концептуальная модель отображает основные (с точки зрения моделирующего) понятия предметной области. Эта модель связана с исследованием предметной области и пространством задачи, но не с её решением. Построение концептуальной модели включает следующие шаги: • идентификация понятий; • определение ассоциаций, отражающие связи между понятиями; • определение атрибутов, необходимых для выполнения информационных требований. Список атрибутов можно разделить на следующие группы: • список атрибутов (исходных данных), с которыми работает заказчик; • список атрибутов (выходных данных), которые необходимы заказчику для управления структурой своего предприятия; • список атрибутов (выходных данных), которые не являются необходимыми для заказчика, но которые он должен предоставлять в другие организации (в вышестоящие структуры, в органы статистического учёта, прочие административные и контролирующие организации). Концептуальное проектирование подробно описано в Приложении 1. Приведенные ниже пункты должны быть отражены в техническом задании. Введение. 1. Основание для разработки. 2. Назначение и область применения программного изделия. 3. Требования к программному изделию: 3.1. Функциональные требования с указанием исходных данных и результатов выполнения каждой из них; 3.2. Требования к надежности; 3.3. Условия эксплуатации; 3.4. Требования к составу и параметрам технических средств; 3.5. Требования к информационной и программной совместимости. 4. Требование к программной документации. 5. Технико-экономические показатели. 6. Порядок контроля и приемки (не должны выходить за возможности учебных аудиторий факультета "Экономика и предпринимательство"). На стадии проектирования создается логическая модель данных, которая строится на основе концептуальной модели. Работа начинается с выделения информационных объектов, которые могут строиться на основе одного или нескольких понятий, выявляются связи между объектами. Затем составляется список свойств объектов. Для каждого свойства объекта подбирается наиболее подходящий тип данных. Определяются отношения между таблицами базы данных на основе связей между объектами данных, содержащимися в них. Существует несколько типов 6
возможных связей между таблицами. Наиболее распространенными являются связи «один ко многим» и «один к одному». Далее полученные таблицы нормализуются. Первично нормализованная таблица содержит строки, в которых для каждого атрибута может быть только одно значение. Ненормализованной таблице обычно соответствует одна или несколько нормализованных таблиц-отношений. На стадии реализации выполняются: • создание таблиц в рамках конкретной СУБД; • проектирование формы для ввода данных в таблицы; • определение операций, выполняемых при создании и изменении информации в таблицах, включая обеспечение целостности данных; • выявление индексов, необходимых для ускорения выполнения запросов, для чего в каждой из таблиц намечают ключевое поле; • проектирование запросов для поиска и анализа информации в БД; • разработка бланков отчётов, согласно принятым на предприятии стандартам; • проработка вопросов безопасности путем распределения полномочий и прав доступа различных групп пользователей базы данных; • разработка процедуры создания резервных копий и восстановления исходных данных. Учебное задание 1.1 Выполнить этап проектирования БД для фирмы, занимающейся страхованием имущества от кражи, пожара и протечки (в произвольной комбинации). Желаемый вид страховки обозначается знаком "+". Клиент может застраховаться на любую «Страховую сумму», для чего делает «Страховой взнос» в размере: • 10% от страховой суммы, если имущество страхуется от пожара; • 8% от страховой суммы, если имущество страхуется от протечки; • 7% от страховой суммы, если имущество страхуется от кражи. Страховка от кражи снижается на 1% при наличии стальной двери и еще на 2%, если в подъезде имеется вахтер. Взнос уменьшается на 1%, если страхование производится на все виды страховых случаев сразу. Тарифы страхования
Вид страховки Пожар Процент 10% страховки
Кража
Протечка
7%
8%
СТРАХОВАНИЕ ИМУЩЕСТВА Защита входа Вид страховки Страховой взнос Страхова Клиент стальная со вахтер пожар кража протечка я сумма полный дверь скидкой XXX Х Х Х Х Х ХХХ ??? ??? 7
Х – обозначает, что информация вводится в БД, т.е. является независимыми (исходными) данными; ? – обозначает, что информация рассчитывается в БД, т.е. является зависимыми (выходными) данными. Технология выполнения учебного задания 1.1 Внимание! На этом уроке не нужно использовать компьютер! Проектирование базы данных включает три стадии: • стадия формулировки требований, которая заканчивается составлением технического задания; • стадия проектирования, которая заканчивается разработкой логической модели; • стадия реализации, на которой создаются таблицы, формы, запросы и отчёты. Стадия формулировки требований Концептуальная модель представлена на рис.1.1. Основными понятиями области страхования имущества являются: • клиент – человек, который хочет застраховать свое имущество; • агент – сотрудник фирмы, оказывающей страховые услуги; • имущество – квартира; • страховой полис – документ; • страховые услуги; • страховые льготы. Ассоциации: • клиент владеет имуществом; • агент страхует имущество; • страховой полис включает информацию о клиенте, имуществе, страховых услугах и льготах.
8
Клиент ФИО клиента Телефон Место проживания 1
Владеет
Страхует
Имущество Адрес
1..n
1..n
1
Агент ФИО агента Телефон Место проживания
1 Описывается
1
1 Страховой полис
Может включать
1
1
Оказывает
Включает 1..n Страховые услуги 1..n Страховая сумма Страховой взнос Вид услуги
Страховые 0..n льготы Процет скидки
Рис. 1.1
Основные требования: • каждый клиент может заключить несколько договоров на страхование различного имущества (не обязательно своего); • агент оказывает содействие клиенту при заключении договора, который завершается выдачей страхового полиса; • страховой полис включает как минимум одну страховую услугу; • страховой полис может не включать страховых льгот. Техническое задание Введение Необходимо спроектировать БД для фирмы, занимающейся страхованием имущества. База данных должна разрабатываться в среде СУБД MS Access. В соответствии с практикой работы страховых фирм для каждого клиента составляется договор страхования, где указываются условия страхования и сумма страховки. На основании суммы страховки и видов страхования производится расчёт страховых взносов: полного и со скидкой. 1. Основание для разработки БД Основанием для разработки является учебное задание по курсу. 2. Назначение разработки БД БД предназначена для хранения и обработки информации о договорах страхования имущества клиентов.
9
3. Требование к БД 3.1. Требование к функциональным характеристикам В процессе работы фирмы в БД должна заноситься информация по каждому клиенту, который желает застраховать свое имущество, виды страхования, страховая сумма, страховой взнос с учётом скидок. Входными данными являются: номер договора, дата договора, информация об агенте, информация о клиенте, сумма страхования. Выходными данными являются: полный страховой взнос, страховой взнос со скидкой, квартальная премия агентов. Полный страховой взнос определяется в размере: • 10% от страховой суммы, если имущество страхуется от пожара; • 8% от страховой суммы, если имущество страхуется от протечки; • 7% от страховой суммы, если имущество страхуется от кражи. Размер страхового взноса снижается при страховании от кражи на 1% при наличии стальной двери и еще на 2%, если в подъезде имеется вахтер. Размер страхового взноса уменьшается на 1%, если страхование проводится на все виды страховых случаев сразу. Размер квартальной премии агентов может назначаться по постоянной и прогрессивной шкале: В первом случае премия назначается в размере 10% от страховых взносов, полученных от страховых договоров за квартал. Во втором случае: • если сумма страховых взносов меньше 10 000 руб., то премия назначается в размере 10% от страховых взносов; • если сумма страховых взносов больше 10 000 руб., но меньше 20 000 руб., то премия назначается в размере 12% от страховых взносов; • если сумма страховых взносов превышает 20 000 руб., то премия назначается в размере 15% от страховых взносов. Выходным документом является шаблон «Приказ о премировании сотрудников». В качестве отчётов будет предоставлена информация по деятельности страховых агентов за отчётный период. 3.2. Требования к надежности БД Специальных требований к обеспечению надежности функционирования БД не предъявляется. 3.3. Условия эксплуатации БД Все пользователи БД имеют равные полномочия для работы с БД. Обслуживающий персонал должен иметь базовую компьютерную подготовку (конечный пользователь). Для ведения БД достаточно одного сотрудника. 3.4. Требования к составу и параметрам технических средств База данных эксплуатируется под управлением СУБД MS Access-97 на ПК, не ниже Pentium 300, RAMM 32 Mb.
10
3.5. Требования к информационной и программной совместимости Специальных требований к информационной и программной совместимости не предъявляется. 4. Требования к документации БД Документацией к БД является полное описание технологии разработки БД. 5. Стадии и этапы разработки Разработка БД включает следующие этапы: • концептуальное проектирование БД, результатом которого должно быть сформулированное техническое задание; • построение информационно-логической модели; • создание таблиц, форм, запросов и отчётов. 6. Порядок контроля и приемки БД База данных должна быть заполнена с помощью составной формы. Каждая таблица должна содержать не менее 20 записей. Все имеющиеся в БД запросы и отчёты должны быть протестированы. 2. Стадия проектирования. Информационно-логическая модель На основе анализа концептуальной модели выделяем три информационных объекта (сущности): агенты, клиенты и договора (страховые полисы). Формируем список атрибутов, описывающих различные информационные объекты. Таблица 1.1 Имя элемента
Номер договора Дата договора ФИО агента Пол агента Дата рождения агента Город агента Телефон агента ФИО клиента Город клиента Телефон клиента Стальная дверь Вахтер Пожар Кража Протечка Страховая сумма Страховой взнос полный Страховой взнос со скидкой
Использование
Объект
Ввод/вывод Ввод/вывод Ввод/вывод Ввод/вывод Ввод/вывод Ввод/вывод Ввод/вывод Ввод/вывод Ввод/вывод Ввод/вывод Ввод/вывод Ввод/вывод Ввод/вывод Ввод/вывод Ввод/вывод Ввод/вывод Вывод
Договора Договора Договора Договора Договора Договора Договора Договора Договора Договора Договора Договора Договора Договора Договора Договора Рассчитывается
Вывод
Рассчитывается 11
Каждый информационный объект будем описывать таблицей. Проектируем таблицу Договора. Вышеперечисленных данных о клиентах и агентах оказывается недостаточно для организации БД, так как в них отсутствует идентифицирующее свойство. Может показаться, что в качестве такого идентифицирующего свойства можно использовать атрибут «Фамилия». Однако, в составе персонала фирмы могут работать однофамильцы, поэтому поле «Фамилия» не может использоваться в качестве ключевого. Лучше всего в качестве ключевого поля использовать дополнительный атрибут, например, номер агента, который будет индивидуальным для каждого агента. С другой стороны, однофамильцы могут встретиться и среди клиентов, кроме того, один и тот же клиент может оформить несколько договоров страхования. Поэтому для идентификации клиентов будем использовать атрибут номер клиента. Наличие полей «Номер Агента» и «Номер Клиента» в структуре таблиц Агенты и Клиенты позволит однозначно идентифицировать запись и, выделив эти поля в качестве ключевых, легко связать таблицы. Таблица 1.2 Имя элемента
Тип данных
Номер договора Дата договора
Числовой Дата/время
Номер агента
Числовой
Дата рождения агента Пол агента ФИО агента Город агента Телефон агента
Дата/время Текстовый Текстовый Текстовый Текстовый
Номер клиента
Числовой
ФИО клиента Город клиента Телефон клиента Стальная дверь Вахтер Пожар Кража Протечка Страховая сумма
Текстовый Текстовый Текстовый Логический Логический Логический Логический Логический Денежный
Страховой взнос полный Денежный Страховой взнос со скидкой
Денежный
12
Описание
Номер договора Дата договора Идентификационный номер агента Дата рождения агента Пол агента ФИО агента Город агента Телефон агента Идентификационный номер клиента ФИО клиента Город клиента Телефон клиента Стальная дверь Вахтер Пожар Кража Протечка Страховая сумма Рассчитывается полный страховой взнос Рассчитывается страховой взнос со скидкой
Применяем к полученной таблице данных правила нормализации. Выделяем информацию об агентах и о клиентах соответственно в отдельные таблицы: Агенты и Клиенты. Между таблицами устанавливаем связи по ключевым полям «Номер Агента» и «Номер Клиента». Тип связей «один ко многим» устанавливается на стороне таблицы Договора. Таблица Договора Связанные объекты: Агенты Тип связи: «один ко многим» Клиенты Тип связи: «один ко многим» Ключевое поле: «Номер Договора» Таблица 1.3 Имя элемента
Номер Договора Дата Договора Номер Агента Номер Клиента Стальная Дверь Вахтер Пожар Кража Протечка Страховая Сумма
Тип данных
Числовой Дата/время Числовой Числовой Логический Логический Логический Логический Логический Денежный
Описание
Номер договора Дата договора Номер агента Номер клиента Стальная дверь Вахтер Пожар Кража Протечка Страховая сумма
Таблица Агенты Связанные объекты: Договора Тип связи: «один ко многим» Ключевое поле: «Номер Агента» Таблица 1.4 Имя элемента
Тип данных
Размер
Номер агента
Числовой
Длинное целое
Фамилия агента Имя агента Отчество агента Пол
Текстовый Текстовый Текстовый Текстовый
Дата рождения
Дата/время
20 15 15 1 Краткий формат даты
Город
Текстовый
15
Телефон
Текстовый
8
13
Примечания
Номер личного дела агента Фамилия агента Имя агента Отчество агента Пол агента Пол агента Город проживания агента Телефон агента
Таблица Клиенты Связанные объекты: Договора Тип связи: «один ко многим» Ключевое поле: «Номер Клиента» Таблица 1.5 Имя элемента
Тип данных
Размер
Номер клиента Фамилия клиента Имя клиента Отчество клиента Город
Числовой Текстовый Текстовый Текстовый Текстовый
Длинное целое 20 15 15 15
Улица Номер дома Номер квартиры Телефон
Примечания
Код клиента Фамилия клиента Имя клиента Отчество клиента Город клиента Название улицы Текстовый 20 клиента Текстовый 4 Номер дома клиента Номер квартиры Числовой Длинное целое клиента Текстовый 8 Телефон клиента
Контрольные вопросы 1.Что такое база данных? 2.Что такое реляционная структура данных? 3.Что такое СУБД? 4.В чем заключается концептуальное проектирование базы данных? 5.В чем заключается разработка информационно-логической модели? 6.Что такое тип данных? 7.Каковы основные задачи нормализации? 8.Из каких соображений выбираются размеры текстового и числового полей?
14
ТЕМА 2. СОЗДАНИЕ ТАБЛИЦ Урок 2.1. Разработка таблиц в режиме Конструктора Краткая справка СУБД MS Access позволяет создавать и использовать объекты нескольких разных типов: таблицы, отчёты, запросы, формы и т.д. Эти составляющие базы данных хранятся в едином дисковом файле. Основным структурным компонентом базы данных является таблица. Структурными элементами таблицы являются поля и записи. Поле – простейший объект базы данных, предназначенный для хранения значений одного параметра реального объекта или процесса, например «номер личного дела агента» или «фамилия агента» (имя, отчество, пол, город, телефон и т.п.). Запись – совокупность логически связанных полей, характеризующих необходимые (моделируемые) свойства реального объекта или процесса. Каждая таблица содержит записи определённого вида, например об агентах, нанятых фирмой для поисков клиентов. Первым этапом при разработке таблицы является определение перечня полей, из которых она должна состоять, их типов и размеров. Каждому полю таблицы присваивается уникальное имя, которое не может содержать более 64 символов, не разрешается использовать символы . ! [ ]. Тип данных указывает, как обрабатывать эти данные. В СУБД MS Access используются следующие типы данных: • текстовый – для текстовой информации и чисел при невыполнении математических расчётов (до 255 символов); • поле MEMO – для хранения произвольного текста большого объема, до 65 535 символов (см. Приложение 5); • числовой – для хранения действительных чисел при выполнении над данными математических операций. Предусмотрены несколько размеров числового типа (см. Приложение 5); • денежный – специальное числовое поле используется для отображения денежных сумм (см. Приложение 5); • дата/время – для хранения календарных дат и текущего времени. (Даты и время, относящиеся к годам с 100 по 9999, включительно.); • счетчик – специальное числовое поле для создания автоматически возрастающего счетчика или счетчика случайных чисел при добавлении записи (см. Приложение 5). Наиболее часто используется счетчик последовательно возрастающих чисел. Такой тип счетчика удобно использовать как ключевое поле таблицы; 15
• логический – может иметь только одно из двух возможных значений «Да» или «Нет»; • поле объекта OLE – объект (например, электронная таблица Microsoft Excel или рисунок Microsoft Draw), созданный другим приложением. Максимальный размер примерно 1 Гб. Используется для ввода в поле рисунков, графиков, таблиц и др. (см. Приложение 5); • гиперссылка – специальное поле для хранения адресов URL Webобъектов Internet. При щелчке на ссылке автоматически происходит запуск броузера и воспроизведение объекта в его окне (см. Приложение 5); • мастер подстановок – это не специальный тип данных. Это объект, настройкой которого можно автоматизировать ввод данных в поле так, чтобы не вводить их вручную, а выбирать из раскрывающегося списка. Структура связанной таблицы формируется по ключевым полям. Ключевое поле таблицы – поле, которое однозначно идентифицирует свойства объекта, хранящиеся в данной таблице. Ключевое поле не может содержать пустых и повторяющихся значений (см. Приложение 4). СУБД MS Access предоставляет несколько средств создания каждого из основных объектов базы. Эти средства можно классифицировать как: • ручные (разработка объектов в режиме Конструктора); • автоматизированные (разработка с помощью программ-мастеров); • автоматические (ускоренная разработка простейших объектов). Ручные средства являются наиболее трудоемкими, но обеспечивают максимальную гибкость. Автоматизированные и автоматические средства являются наиболее производительными, но и наименее гибкими. Учебное задание 2.1 Сформируйте структуру таблицы Агенты для хранения в ней справочных сведений об агентах, работающих в фирме. Структура таблицы (имена, типы и размеры полей) приведена ниже. Таблица 2.1 Поле
Номер агента Фамилия Имя Отчество Город Пол Дата рождения Телефон
Тип поля
Размер
Числовой Текстовый Текстовый Текстовый Текстовый Текстовый
Длинное целое 20 15 15 15 1 Краткий формат Дата/время даты Текстовый 8
16
Примечания
Код агента Фамилия агента Имя агента Отчество агента Город проживания агента Пол агента (м / ж) Дата рождения агента Телефон агента
Технология выполнения учебного задания 2.1 1. Создайте новую базу данных, выполнив следующие действия: а) активизируйте программу MS Access, в появившемся окне выберите на вкладке «Создание базы данных» режим «Новая база данных» и нажмите кнопку «ОК»; б) в диалоговом окне «Файл новой базы данных» установите следующие параметры: • тип файлов: Базы данных Access; • выберите сетевую папку группы, личную папку (если её нет, то создайте, нажав на копку на панели «Создание папки»); • имя файла: наберите в окне имя STRAXOV; • нажмите кнопку «Создать». Создайте таблицу базы данных. Для этого: • на панели базы данных «Таблица» нажмите кнопку «Создать»; • в окне диалога «Новая таблица» нажмите кнопку «Конструктор». 2. Открывается окно «Таблица 1: таблица» в режиме Конструктора, в котором следует определить поля таблицы. Задайте свойства полей таблицы (см. табл.2.1) Для определения свойства первого поля выполните следующие действия: • введите в ячейку столбца «Поле» имя первого поля – «Номер агента»; • в ячейке столбца «Тип данных» нажмите кнопку раскрытия списка и выберите тип данных – «Числовой»; • в ячейке столбца «Описание» введите поясняющую надпись – «Учётный номер агента в фирме»; • переключитесь на панель свойств поля «Общие», выберите «Размер поля» – «Длинное целое». 3. Для определения всех остальных полей таблицы базы данных STRAXOV.MDB выполните действия, аналогичные указанным в п.3. Свойства полей необходимо задавать в соответствии с таблицей, приведенной в задании. Если значение тип данных не является «текстовым», нажмите кнопку раскрытия списка и выберите нужный тип данных. 4.Создайте ключевое поле. В качестве ключевого поля выберите поле «Номер агента». Для этого нужно нажать на значок с изображением ключа на панели инструментов. 5.Сохраните таблицу, выполнив следующие действия: • выберите пункт меню ФАЙЛ / Закрыть; • в окне диалога «Сохранение» введите имя таблицы Агенты; • нажмите кнопку «ОК». Если вы случайно ошиблись при выборе ключевого поля, выделите это поле, нажав курсором мыши на изображение ключа, а затем выполните команду ПРАВКА / Удалить. 6. Закройте базу данных, выполнив команду ФАЙЛ / Закрыть.
17
Контрольные вопросы 1.Содержится ли информация в пустой базе данных? 2.Какова структура простейшей базы данных? 3.Чем отличается от других полей поле Счетчик? 4.Чем отличается поле МЕМО от текстового поля? 5.Чем отличается числовое поле от поля денежного? Можно ли их взаимозаменять? Самостоятельное задание 2.1 Сформируйте структуру таблицы Клиенты для хранения в ней справочных сведений о клиентах, заключивших договор страхования. Имена, типы и размеры полей таблицы приведены ниже. Таблица 2.2 Поле
Номер клиента Фамилия Имя Отчество Город Улица Номер дома Номер квартиры Телефон
Тип поля
Числовой Текстовый Текстовый Текстовый Текстовый Текстовый Текстовый Числовой Текстовый
Размер
Длинное целое 20 15 15 15 20 4 Целое 8
Примечания
Код клиента Фамилия клиента Имя клиента Отчество клиента Город клиента Название улицы Номер дома Номер квартиры Телефон клиента
Урок 2.2. Ввод и редактирование данных в режиме таблицы Краткая справка Данные в таблицу вводятся как в табличной форме, так и с использованием специально разработанной пользовательской экранной формы. Редактирование записей и исправление ошибок в данных таблицы возможно также в каждом из двух указанных режимов. При любом из указанных способов ввода и корректировки данных таблицы MS Access сохраняет введенную или исправленную запись на диске, на котором создана таблица БД (см. Приложение 3). Ввод данных. В режиме таблицы показ записей в формате строк и столбцов обеспечивает возможность одновременного просмотра нескольких записей. Допускается также добавление и изменение данных в режиме таблицы. Вдоль верхнего края окна расположены имена полей таблицы. Каждое поле соответствует определённому столбцу в таблице. Каждая запись занимает одну строку таблицы. Ввод в определённую ячейку таблицы (выделенную курсором) осуществляется путем набора информации на клавиатуре и последующим нажатием клавиши «Enter» или «Таb». При окончании ввода данных в последнее 18
поле записи MS Access сам переходит на первое поле новой записи и ожидает ввода данных. Внимание! Заполнения с клавиатуры требуют все поля, кроме тех, тип которых определен как Счетчик. Перемещение по таблице. Для быстрого просмотра данных, введенных в таблицу, а также необходимого позиционирования в таблице нужно обратить внимание на возможности быстрого перемещения в таблице. На первую запись – щелчком мышью по кнопке «Первая запись»; На последнюю запись – щелчком мышью по кнопке «Последняя запись»; На первый столбец таблицы – клавишей «Home»; На последний столбец таблицы – клавишей «End»; На следующий столбец справа – одной из клавиш: «Right», «Enter», «Tab»; На следующий столбец слева – клавишей «Left», или «Shift»+«Tab»; На строку вверх – клавишей «Up»; На строку вниз – клавишей «Down»; Вверх на 26 строк – клавишей «PgUp»; Вниз на 26 строк – клавишей «PgDn»; В левый верхний угол таблицы – клавишами «Ctrl»+«Home»; В правый нижний угол таблицы – клавишами «Ctrl»+«End». Редактирование данных. Редактировать данные ячейки таблицы можно как с полной, так и с частичной их заменой. Для полной замены данных необходимо подвести курсор к редактируемой ячейке так, чтобы все её содержимое было высвечено в реверсивном виде, а затем набрать (ввести) заменяемую информацию. Частичную замену данных можно осуществить двумя способами: • во-первых, щелкнуть в нужной ячейке, и она автоматически откроется для редактирования; • во-вторых, используя клавиши, переместиться в нужную ячейку, а затем нажать функциональную клавишу «F2». Удаление записи. Для удаления записи её необходимо выделить (щелкнуть по области маркировки записи) и либо нажать клавишу «Del», либо выполнить команду меню ПРАВКА / Удалить. В выводимом на экран запросе подтвердить удаление. Учебное задание 2.2 Введите данные, представленные в табл.2.3, в таблицу Агенты, созданную в предыдущем задании. Пользуясь информацией краткой справки, ознакомьтесь с возможностями редактирования данных в табличном режиме. Пример таблицы для ввода данных в табличном режиме – табл.2.3.
19
Таблица. 2.3
34678 34689 34679 34680 34690 34694 34696 34695
Бабочкин Блохина Мотыль Вшивцев Молль Жуков Комаров Мошкин
34697 Мухин
Петр Анна Иван Павел Антон Борис Артем Сергей
Александрович Антоновна Павлович Петрович Антонович Петрович Александрович Иванович
Олег
Валерьевич
34699 Пчелкина Нина
Захаровна
Васили Васильевич й 34711 Шмелева Лариса Михайловна 34700 Стрекозин
Челябинск М Челябинск Ж Челябинск М Челябинск М Челябинск М Миасс М Кыштым М Касли М Магнитого М рск Магнитого Ж рск
12.04.76 10.06.76 15.07.75 30.08.76 22.09.75 19.04.76 17.05.75 15.06.76
91-34-16 90-26-26 45-17-35 50-98-74 62-89-75 3-74-77 6-65-65 3-56-86
14.07.75 14-37-95 3.08.76
23-18-26
Чебаркуль М
22.09.75 3-06-35
Златоуст
2.04.76
Ж
2-05-46
Технология выполнения учебного задания 2.2 1.Откройте ранее созданную базу данных STRAXOV.MDB, выполнив следующие действия: • выполните команду ФАЙЛ/ Открыть; • в диалоговом окне «Открытие базы данных» установите следующие параметры: • тип файлов: Базы данных Access; • выберите сетевую папку группы, личную папку; • имя файла: наберите в окне имя STRAXOV или выберите его из списка; • нажмите кнопку «Открыть». 2.Откройте таблицу Агенты базы данных STRAXOV. Для этого: • в окне «STRAXOV:База данных» щелкните по вкладке Таблицы; • выделите нужную таблицу; • нажмите кнопку «Открыть». В списке таблиц БД присутствует и может быть выделена только одна таблица Агенты. 3.Введите данные в таблицу, как это приведено в табл.2.3. При вводе данных воспользуйтесь информацией, приведенной в краткой справке. Познакомьтесь с возможностями быстрого перемещения в таблице (см. краткую справку). 4.Отредактируйте введенные в таблицу данные (см. краткую справку): • в поле «Фамилия» второй записи таблицы полностью замените Блохина на Морозова; • в поле «Город» первой записи таблицы замените Челябинск на Уфалей; 20
5. Закройте таблицу командой меню ФАЙЛ/ Закрыть. 6. Закройте базу данных, выполнив команду ФАЙЛ/ Закрыть. Контрольные вопросы 1. Как осуществляется сохранение изменений, внесенных в таблицу? 2. Почему нельзя редактировать записи в БД, находящейся в эксплуатации с учебными или исследовательскими целями? Самостоятельное задание 2.2 Заполните таблицу Клиенты данными (порядка 20 записей). Отредактируйте данные в табличном режиме.
ТЕМА 3. ВВОД ИНФОРМАЦИИ В ТАБЛИЦЫ С ПОМОЩЬЮ ФОРМ И ПЕЧАТЬ ТАБЛИЦ Урок 3.1. Разработка однотабличных пользовательских форм Краткая справка Важнейшая часть приложения, в том числе БД, – внешний интерфейс, т.к. пользователь все время работает в его среде. Для конечного пользователя интерфейс олицетворяет приложение – ведь его не интересуют механизмы доступа к данным и программный код. Форма – объект БД, базовый строительный блок интерфейса приложения MS Access, предназначенный для ввода исходных данных пользователем по некоторому трафарету. Фактически это окна, через которые пользователь взаимодействует с программным кодом приложения и объектами данных. Данные в таблицу БД вводить и редактировать намного удобнее, если воспользоваться экраном в виде некоторого бланка, формы. Такой способ ввода позволяет видеть на экране все данные одной записи и дополнительный текст, поясняющий значение каждого поля. Можно создать форму, напоминающую печатную форму, расположить в ней окна списков, фотографии, графики и др. MS Access располагает мастером по разработке форм пяти видов: • в один столбец – поля выводятся на экран в виде последовательности строк; • табличная форма – поля выводятся в виде строк и столбцов; • диаграмма – для её создания выбирается таблица, содержащая числовые значения, которые можно представить в графическом виде; • составная форма – объединяет в себе данные более одной таблицы БД. Позволяет просмотреть и изменить данные в нескольких таблицах одновременно; • простая форма – единственная форма, которую MS Access создает автоматически, включая все поля таблицы и используя стандартный шаблон. 21
Ввод данных с использованием формы При вызове на экран окна формы, с помощью которой можно вводить новые записи, выберите пункт меню ЗАПИСИ / Перейти / Новая. MS Access создает новую незаполненную запись после последней записи таблицы. Новая запись выводится в виде формы с пустыми полями, с курсором в первом поле. Данные вводятся в каждое поле, не определённое с типом Счетчик. Переход от одного поля к другому осуществляется нажатием клавиши «Таb». Основные способы перемещения в режиме формы: • переход к первой записи – щелкнуть по кнопке «Первая запись»; • переход к последней записи – щелкнуть по кнопке «Последняя запись»; • переход к следующей записи – щелкнуть по кнопке «Следующая запись» или нажать клавишу «PgDn»; • переход к предыдущей записи – щелкнуть по кнопке «Предыдущая запись» или нажать клавишу «PgUp»; • переход к определённой записи по её номеру – щелкнуть в текстовом элементе формы «Запись» и, удалив находящийся в ней номер, ввести с клавиатуры номер нужной записи. Учебное задание 3.1 Создайте однотабличную пользовательскую форму Агент для ввода и редактирования данных таблицы Агенты. Ознакомьтесь с возможностями ввода данных в форму. Технология выполнения учебного задания 3.1 1.Откройте БД STRAXOV.MDB, выполнив команду ФАЙЛ/ Открыть; 2.Создайте простую форму. Для этого: • в окне База данных: STRAXOV выберите панель Формы (рис 3.1); • нажмите кнопку «Создать», выберите Мастер форм и нажмите «ОК»;
22
Рис. 3.1
• первый шаг – появляется окно «Создание формы». Необходимо скопировать из таблицы Агенты поля «Номер Агента», «Фамилия», «Имя», «Отчество», «Город», «Пол», «Дата рождения», «Телефон» из окна «Доступные поля» в окно «Выбранные поля». Для этого используйте кнопку . После выбора всех нужных полей нажмите кнопку «Далее»; • на втором шаге Мастера форм необходимо указать вид формы: «в один столбец». Нажмите кнопку «Далее»; • на третьем шаге выбирается стиль. Выберите стиль оформления обычный и нажмите кнопку «Далее»; • на последнем шаге Мастера форм задайте имя новой формы Агент, нажмите кнопку «Готово».
Рис. 3.2
3.Добавьте в таблицу запись в режиме формы. Содержание добавляемой записи может быть взято произвольно (рис. 3.2). Познакомьтесь с возможностями перемещения в таблице, представленной в виде формы. Используйте для выполнения этих операций информацию из краткой справки. 4.Используя Мастера форм, создайте формы Агент-2 и т.д. в другом стиле и другого вида. 5.Закройте базу данных, выбрав команду меню ФАЙЛ/ Закрыть, с сохранением данных. Контрольные вопросы 1. В каких видах может осуществляться заполнение базы данных? 2. Что такое форма? Для чего используется ввод данных с помощью форм? 3. Может ли форма содержать не все поля исходной таблицы? 4. Может ли одной таблице соответствовать несколько форм?
23
Самостоятельное задание 3.1 Создайте однотабличную пользовательскую редактирования данных таблицы Клиенты.
форму
для
ввода
и
Урок 3.2. Печать данных Учебное задание 3.2 Подготовьте для печати содержимое таблицы Агенты из режимов таблицы и формы. Технология выполнения учебного задания 3.2 1. Откройте БД STRAXOV.MDB, выполнив команду ФАЙЛ/ Открыть. 2. Откройте таблицу Агенты в табличном режиме. Для этого: • в окне «База данных: STRAXOV» выберите вкладку Таблицы. 3. В списке таблиц должна присутствовать таблица Агенты; • щелкните дважды по таблице Агенты или выберите эту таблицу и нажмите кнопку «Открыть». 3. Выведите данные таблицы Агенты на экран из табличного режима, для чего необходимо выбрать команду ФАЙЛ/ Предварительный просмотр. 4. Закройте окно предварительного просмотра таблицы, используя кнопку системного меню в левом верхнем углу окна таблицы. На запрос MS Access о сохранении изменений в таблице ответьте отрицательно. 5. Откройте таблицу Агенты в режиме формы. Для этого: • в окне базы данных выберите вкладку Формы; • щелкните по ранее созданной форме Агент или выберите её и нажмите кнопку «Открыть». 6. Выведите данные таблицы Агенты на экран из режима формы, для чего необходимо выбрать команду ФАЙЛ/ Предварительный просмотр. 7. Закройте базу данных, выбрав команду меню ФАЙЛ/ Закрыть. Для получения распечатки данных из таблицы или режима формы выполняется команда меню ФАЙЛ/ Печать. Непосредственно процесс печати на занятиях не выполняется. Контрольные вопросы 1. Какие существуют виды печати из базы данных? 2 .Зачем используется функция предварительного просмотра? Самостоятельное задание 3.2 Подготовьте для печати содержимое таблицы Клиенты из режимов таблицы и формы.
24
_________________________________________________________________
Кафедра «Информационные системы» факультета «Экономика и предпринимательство» ЮУрГУ (корпус 3Б, 1 этаж, ауд. 120в, 67-94-79) 1. Прикладная информатика в юриспруденции: специализация «Программная и правовая защита информационных систем». Информатик юрист со специализацией «Программная и правовая защита информационных систем» умеет использовать нормы законодательства, по защите информации и охране исключительных прав на результаты интеллектуальной деятельности; разрабатывать защищенные программные приложения; организовывать защиту информации в глобальной сети Интернет, базах данных; применять аппаратно-программные методы для защиты информационных систем; проектировать комплексную систему защиты информационных систем, обеспечивать соответствие разрабатываемого ПО систем защиты информации действующим нормативным и методическим документам
Прикладная информатика в управление: «Корпоративные информационные системы» 2.
специализация
Информатик-менеджер со специализацией «Корпоративные информационные системы» обладает знаниями в области Управления производством на базе стандартов MRP/ERP Реинжиниринга бизнес-процессов и проектирование корпоративных информационных систем (ИС) Проектирования клиент-серверных корпоративных ИС Управлениея проектированием ИС Комплексной защиты информационных систем Интеллектуальной обработка информации в корпоративных ИС
25
ТЕМА 4. СОЗДАНИЕ ЗАПРОСОВ Урок 4.1. Поиск, фильтрация и сортировка данных Краткая справка MS Access предоставляет широкий спектр возможностей для поиска и отбора информации в базе данных. К таким средствам можно отнести использование команды Найти, Фильтр, Сортировка. Для того чтобы записи в таблице выстраивались при выводе в удобном для пользователя порядке, используется сортировка. MS Access может проводить сортировку по одному полю, по нескольким полям, по возрастанию или по убыванию значений ключевого признака. Для вывода только определённых записей таблицы (отбора) используется фильтрация. Ниже описывается технология отбора записей путем ввода значений в пустую форму или таблицу. Откройте таблицу, запрос или форму в режиме таблицы или откройте форму в режиме формы. Нажмите кнопку «Изменить фильтр» на панели инструментов или выполните команду ЗАПИСИ/ Фильтр/ Изменить фильтр чтобы переключиться в окно обычного фильтра. Выберите поле для задания условия отбора, которому должны удовлетворять записи, включаемые в результирующий набор записей. Введите условие отбора, выбрав искомое значение в раскрывающемся списке значений поля (если список содержит значения полей), или введите в поле значение с клавиатуры. При этом нужно иметь в виду следующее: • для поиска записей, в которых установлены или сняты флажок, выключатель или переключатель, выбирайте их с помощью мыши, пока они не получат нужное значение. Если требуется вернуть их в исходное неопределённое состояние, продолжайте выбирать флажок, выключатель или переключатель; • для поиска записей, имеющих в конкретном поле пустые или непустые значения, введите в это поле выражение Is Null или Is Not Null. (Данное выражение можно выбрать в раскрывающемся списке для полей с типами данных «Поле MEMO» или «Поле объекта OLE», а также для вычисляемых полей в запросах); • для поиска записей с использованием условия отбора, задающегося выражением, введите выражение в соответствующее поле или создайте его с помощью построителя выражений. Примеры выражений различных условий отбора представлены в Приложении 7; • если задать значения в нескольких полях, фильтр будет возвращать только те записи, в которых каждое из полей содержат указанное значение; 26
• для того чтобы указать несколько значений, которые запись, включаемая в результирующий набор, может содержать в одном поле, выберите вкладку Или, ярлычок которой находится в левом нижнем углу окна. Фильтр будет возвращать записи, содержащие в полях все значения, указанные на вкладке Найти, или все значения, указанные на первой вкладке Или, или все значения, указанные на второй вкладке Или и т.д. Нажмите кнопку «Применить фильтр» на панели инструментов или выполните команду Фильтр/ Применить фильтр. Учебное задание 4.1 1.Для данных, содержащихся в таблице Агенты, • в режиме формы осуществите поиск одной из записей; • в режиме таблицы отсортируйте записи по возрастанию значений одного из полей; • отфильтруйте данные в соответствии с критерием отбора. Технология выполнения учебного задания 4.1 1. Откройте ранее созданную базу данных STRAXOV.MDB. 2. Откройте таблицу Агенты в режиме формы. Для этого: • в окне базы данных выберите вкладку Формы; • щелкните дважды по ранее созданной форме Агент либо выберите форму Агент и нажмите кнопку «Открыть». 3. Найдите запись таблицы с информацией об агенте с фамилией Жуков. С этой целью выполните следующую группу действий: • находясь в форме Агент, щелкните в строке поля «Фамилия»; • щелкните на кнопке «Найти» (или выполните команду меню Правка/ Найти); • в диалоговом окне «Поиск в поле 'Фамилия'» введите в строку "Образец" слово Жуков; • щелкните на кнопке «Найти». В форму выведется найденная запись (рис. 4.1). 4. Закройте окно формы, щелкнув по кнопке «3акрыть». На экране появится окно базы данных. 5. Откройте таблицу Агенты в табличном режиме. Для этого в окне «База данных: STRAXOV» выберите вкладку «Таблица» и дважды щелкните по таблице Агенты.
27
Рис. 4.1
6. Отсортируйте записи таблицы в соответствии с алфавитным порядком фамилий агентов, что потребует от вас следующих действий: • щелкните на столбце «Фамилия»; • щелкните по кнопке пиктографического меню «Сортировка по возрастанию» или выберите пункт меню ЗАПИСИ/ Сортировка/ Сортировка по возрастанию (рис. 4.2).
Рис. 4.2
28
Записи таблицы будут выведены на экран в соответствии с алфавитным порядком фамилий. 7. Используйте фильтрацию для вывода на экран только записей, относящихся к агентам, родившимся после 1975г. Для этого выполните следующий порядок действий (рис.4.3): • откройте таблицу Агенты в табличном режиме; • в окне с таблицей Агенты щелкните на кнопке «Изменить фильтр» или выберите пункт меню Записи/ Фильтр/ Изменить фильтр;
Рис. 4.3
• в окне фильтра в столбце с именем «Дата рождения» введите условие отбора >31.12.75 (рис. 4.4);
Рис. 4.4
• щелкните на кнопке «Применить фильтр» или выберите пункт меню Фильтр/ Применить фильтр; На экран выведутся только записи, соответствующие введенному критерию отбора (рис. 4.5).
29
Рис. 4.5
8. Удалите фильтр, для чего щелкните по кнопке «Удалить фильтр» или выберите пункт меню ЗАПИСИ/ Удалить фильтр. 9. Используйте фильтрацию для вывода на экран только записей, относящихся к агентам мужского пола, фамилии которых начинаются на букву «К». Для этого выполните следующий порядок действий: • откройте таблицу Агенты в табличном режиме; • в окне с таблицей Агенты щелкните на кнопке «Изменить фильтр» или выберите пункт меню Записи/ Фильтр/ Изменить фильтр; • в окне фильтра в столбце с именем «Фамилия» введите условие отбора Like К*; • в окне фильтра в столбце с именем «Пол» введите условие отбора «м»; • щелкните на кнопке «Применить фильтр» или выберите пункт меню Фильтр/ Применить фильтр. На экран выведутся только записи, соответствующие введенному критерию отбора. 10. Удалите фильтр, для чего щелкните по кнопке «Удалить фильтр» или выберите пункт меню Записи/ Удалить фильтр. 11. Используйте фильтрацию для вывода на экран только записей, относящихся к агентам, проживающим в Челябинске, используя технологию, описанную выше. 12. Удалите фильтр. 13. Используя вышеописанную технологию фильтрации, выведите на экран о записи, относящихся к агентам мужского пола, имена которых начинаются на букву «А». 14.Удалите фильтр. 15. Закройте базу данных, выбрав команду меню ФАЙЛ/ Закрыть.
30
Контрольные вопросы 1. Существуют ли физически таблицы, являющиеся результатом применения фильтра или сортировки данных? 2. Что означает условие отбора Like П*? 3. Какова причина получения пустой таблицы в ответ на применение фильтра к полю «Фамилия» с условием отбора Like Р*, если в таблице существует записи со значениями в поле «Фамилия» Романов и Румянцев? Самостоятельное задание 4.1 1. Для данных, содержащихся в таблице Клиенты, • в режиме формы осуществите поиск одной из записей; • в режиме таблицы отсортируйте записи по возрастанию значений одного из полей; • отфильтруйте данные в соответствии с каким-либо критерием отбора.
Урок 4.2. Формирование запросов Краткая справка В MS Access поиск и отбор любой нужной информации можно производить с использованием запросов, имеющих большие возможности, чем рассмотренные ранее средства. Запросы представляют собой средства для извлечения из базы данных информации, отвечающей некоторым критериям, задаваемым пользователем. Запрос представляет собой сохраняемое в БД или оперативно формируемое требование данных, хранящихся в таблицах, или инструкцию на отбор записей, подлежащих изменению. С помощью MS Access могут быть созданы перечисленные ниже типы запросов. Запрос-выборка возвращает данные из одной или нескольких таблиц, а также результаты, которые при желании пользователь может изменить (с некоторыми ограничениями). Также можно использовать запрос на выборку, чтобы сгруппировать записи для вычисления сумм, средних значений, пересчета и других действий. В перекрёстном запросе отображаются результаты статистических расчётов (такие как суммы, количество записей и средние значения), выполненных по данным из одного поля таблицы. Эти результаты группируются по двум наборам данных, один из которых расположен в левом столбце таблицы, а второй – в верхней строке. Запрос с параметром – это запрос, при выполнении которого в его диалоговом окне пользователю выдается приглашение ввести данные, например условие для возвращения записей или значение, которое должно содержаться в поле. Можно создать запрос, в результате которого выводится приглашение на ввод нескольких 31
данных, например, двух дат. В результате будут возвращены все записи, находящиеся между указанными двумя датами. Запросы SQL – запросы, которые могут быть созданы только с помощью инструкций SQL в режиме SQL (см. Приложение 11). Например, запрос-объединение, запрос к серверу и управляющий запрос. В MS Access имеется возможность самостоятельно создать запрос или воспользоваться мастером по разработке запросов. Чаще всего запрос разрабатывается самостоятельно. Самым распространенным типом запроса является запрос на выборку в режиме Конструктора (без использования мастера). Создание такого запроса включает следующие шаги: • в окне БД перейдите к вкладке Запросы и нажмите кнопку «Создать»; • в диалоговом окне Новый запрос выберите команду Конструктор и нажмите кнопку «OK»; • в диалоговом окне Добавление таблицы перейдите к вкладке, которая включает объекты, содержащие требуемые данные; • для добавления объектов в запрос дважды щелкните кнопкой мыши на имени каждого, а затем нажмите кнопку «Закрыть»; • если запрос содержит несколько таблиц или запросов, убедитесь, что между собой их соединяет линия. Для MS Access это означает, что данные связаны. Если же линий нет, создайте их; • добавьте поля в запрос, перемещая их имена с помощью мыши из списка полей в бланк запроса; • внесите в запрос необходимые усовершенствования: определите условие отбора, порядок сортировки, создайте вычисляемые поля (для вычисления суммы, среднего значения, пересчета и других действий с данными), либо измените структуру запроса; • для сохранения запроса нажмите кнопку «Сохранить» на панели инструментов. Введите имя, соответствующее соглашениям об именах объектов MS Access, и нажмите кнопку «OK»; • для просмотра результатов запроса нажмите «Вид» на панели инструментов. Выражения в запросах Выражения можно создавать самостоятельно или с помощью построителя выражений (см. Приложение 6). Выражения могут состоять из следующих элементов: литералов; операторов; констант; идентификаторов; функций. Литерал – это точное значение, которое MS Access использует именно в том виде, как оно вводится. При записи литерала используются специальные символы-ограничители, которые указывают на тип данных литерала. Если литерал – число, то он вводится без ограничителей. Например, 465.8. Текстовый литерал должен иметь в качестве ограничителя – " или ‘. 32
Например, "Иванов" или 'Иванов'. В литералах типа дата используется ограничитель #. Например, #12/11/96#. В случае литерала типа поле или элемента управления вводятся ограничители [ ]. Например, [Фамилия]. Оператор указывает действие, которое должно быть выполнено с элементами выражения. Выделяются следующие группы операторов: • арифметические: * умножение + сложение вычитание, / деление ^ возведение в степень; • соединение частей текста &, например, =[Фамилия] & " "&[Имя]; • сравнения: < меньше
больше, >= больше или равно= равно не равно; • логические: And (И), Not (Нет), Оr (Или); Идентификатор – это имя, введенное в выражение для резервирования места под значение, которое хранится в поле или элементе управления. Функция – это специальное имя, которое используется для выполнения какойлибо операции и может применяться в выражениях. Для построения выражений используется построитель выражений (см. Приложение 6). Аргументы функции должны заключаться в (). В MS Access встроено несколько десятков функций (см. Приложение 7). Учебное задание 4.2 1. Сформируйте запрос-выборку, позволяющий получить из таблицы Агенты данные: • об агентах-мужчинах, родившихся после 1 апреля 1975г; • об агентах, живущих в городе Магнитогорске. 2. Создайте запрос с параметрами, позволяющий получить данные об агентах по фамилии. Технология выполнения учебного задания 4.2 Этап 1: Создание простого запроса 1. Откройте ранее созданную базу данных «STRAXOV.MDB». 2. Создайте новый запрос. Для этого: • в окне «STRAXOV: База данных» выберите вкладку «3апросы»; • нажмите кнопку «Создать», в диалоговом окне «Новый запрос» выберите команду Конструктор и нажмите кнопку «OK»; • в диалоговом окне «Добавление таблицы» выберите таблицу Агенты и нажмите на кнопку «Добавить» (рис. 4.6);
33
Рис. 4.6
• после появления в окне «Запрос1: Запрос на выборку» списка полей таблицы Агенты в диалоговом окне «Добавление таблицы» щелкните на кнопке «3акрыть»; • в первую ячейку строки Поле перетащите из списка полей таблицы Агенты поле «Фамилия». Во вторую – «Имя». В третью – «Отчество», в четвертую – «Дата рождения», в пятую – «Пол»; • в пятую ячейку строки Условие отбора поместите выражение: «м» и уберите признак вывода на экран информации из этого поля; • в четвертую ячейку строки Условие отбора поместите выражение: >#01.04.75# и установите признак вывода на экран информации из данного поля (рис.4.7). 3. Выполните запрос, для чего щелкните на кнопке пиктографического меню «Запуск» или выберите пункт меню Запрос/ Запуск.
34
Рис. 4.7
4. Сохраните запрос, для этого выполните команду меню ФАЙЛ/ Сохранить. В появившемся после этих действий окне «Сохранение» введите имя запроса, например, можно оставить имя «Запрос1», предлагаемое по умолчанию. 5. Измените условие запроса, например, отбирайте агентов, фамилии которых начинаются с буквы «Б». Для этого выполните следующие действия: • во вкладке Запросы выберите Запрос1 и нажмите кнопку «Конструктор»; • в ячейку строки «Условия отбора», соответствующей полю «Фамилия» введите выражение Like Б*; • выполните запрос; • вернитесь в Конструктор, выполнив команду Вид/ Конструктор. 6. Измените условие запроса: выберите агентов, родившихся после 12 июня 1975, фамилии которых начинаются на букву «М». 7.Создайте по аналогичной технологии запрос на выборку агентов мужского пола из Магнитогорска. 8. Измените условие запроса: отберите всех агентов с именами, начинающимися на букву «П». Этап 2: Создание запроса с параметрами 1. Создайте новый запрос с параметрами, выполнив следующие действия: • в окне «STRAXOV:База данных» нажмите кнопку «3апросы», а затем кнопку «Создать»; • в диалоговом окне «Новый запрос» выберите команду Конструктор и нажмите кнопку «OK»; • в диалоговом окне «Добавление таблицы» выберите таблицу Агенты и нажмите на кнопку «Добавить»; • после появления в окне «Запрос2: Запрос на выборку» списка полей таблицы Агенты в диалоговом окне «Добавление таблицы» щелкните на кнопке «3акрыть»; • в первую ячейку строки «Поле» перетащите из списка полей таблицы Агенты поле «Фамилия»; во вторую – «Имя»; в третью – «Отчество», в четвертую – «Город»; • в четвертую ячейку строки «Условие отбора» поместите выражение: [Фамилия:]; • выполните запрос, нажав на кнопку или выполнив команду Запрос/ Запуск. 2. Закройте базу данных, выбрав команду меню ФАЙЛ/ Закрыть. Контрольные вопросы 1. Для чего применяются запросы? 2.В чем заключается отличие между запросами и фильтрами? 3.Как будет выглядеть условие отбора, если нужно получить информацию обо всех сотрудниках, старше 29 лет и младше 41 года? 35
Самостоятельное задание 4.2 1. Сформируйте запрос-выборку, позволяющий получить из таблицы Клиенты данные: • об агентах-женщинах, фамилии которых начинаются на букву «М»; • об агентах, живущих в городе Челябинске. 2. Создайте запрос с параметрами, позволяющий получить данные об агентах по номеру их телефона. 3. Создайте запрос-выборку по агентам, у которых текущий день является днем рождения. Для определения текущей даты используйте функцию Now().
ТЕМА 5. СОЗДАНИЕ ОТЧЁТОВ Урок 5.1. Разработка детального отчёта Краткая справка Отчёты – компоненты интерфейса приложения во многом схожие с формами. Это связываемые контейнеры, позволяющие предварительно просмотреть и распечатать информацию. Для получения отчёта улучшенного внешнего вида необходимо подготовить детальный отчёт. Он должен иметь наглядную форму и содержать больше информации, чем простая распечатка таблицы. Целесообразно для создания обычного детального отчёта использовать мастера отчётов. MS Access включает следующие мастера отчётов: • в один столбец; • почтовая наклейка; • табличный отчёт; • простой отчёт. При создании простого отчёта выводятся все поля и записи из таблицы или запроса, причём каждое поле – на отдельной строке. При выборе мастера отчёта (за исключением простого отчёта) требуется определить стиль отчёта (Строгий, Доклад, Табличный), его ориентацию на странице (Книжная, Альбомная), присвоить имя отчёту и ввести заголовок отчёта. Если созданный мастером отчёт не полностью вас удовлетворяет, измените его в режиме Конструктора или создайте специальные стили, которые мастер будет использовать при создании следующих отчётов. Возможные ошибки при проектировании отчётов приведены в Приложении 12. Учебное задание 5.1 С помощью мастера создайте детальный отчёт для вывода данных таблицы Агенты. Вид отчёта представлен на рис.5.1. 36
Рис.5.1
Технология выполнения учебного задания 5.1 1. Откройте ранее созданную базу данных STRAXOV.MDB. 2. Создайте отчёт для вывода данных таблицы Агенты с помощью мастера. Для этого выполните следующие действия: • в окне «STRAXOV: База данных» выберите вкладку Отчёты; • нажмите кнопку «Создать» и выберите Мастер отчётов (рис. 5.2);
Рис.5.2
• в окне мастера «Создание отчёта» выберите таблицу Агенты в меню Таблицы/запросы; 37
• в списке «Доступные поля» щелкните по полю «Фамилия», а затем по кнопке для перемещения поля в список полей, выбранных для создания отчёта; • аналогичным образом выберите для включения в отчёт поля «Имя», «Отчество», «Телефон». Щелкните по кнопке «Далее» (рис. 5.3);
Рис. 5.3
• в окне группировки нажмите кнопку «Далее»; • в следующем окне выберите поле «Фамилия» для вывода фамилий, отсортированных по алфавиту. Щелкните по кнопке «Далее» (рис. 5.4);
Рис. 5.4
• в диалоговом окне макета отчёта выберите макет «Табличный», ориентацию «Книжная» и щелкните на кнопке «Далее»; • в диалоговом окне стиля отчёта выберите стиль «Обычный»; 38
• в следующем окне мастера отчётов введите заголовок отчёта Агенты и щелкните по кнопке «Готово». Появится окно предварительного просмотра отчёта. 3. Повторите действия пункта 2, но в окне группировки данных щелкните дважды по полю «Телефон». Посмотрите, как изменился результат. 4. Создайте новый отчёт, но измените порядок сортировки, стиля. Сравните результаты. 5. Закройте базу данных, выбрав команду меню ФАЙЛ/ Закрыть. Контрольные вопросы 1.Для чего нужны отчёты? 2.Какие стили отчётов существуют? 3.На основе каких структурных элементов БД может быть построен отчёт? Самостоятельное задание 5.1 С помощью мастера создайте детальный отчёт для вывода данных таблицы Клиенты. Вид отчёта должен включать имя, фамилию и отчество клиента, город проживания клиента. Итоговое самостоятельное задание по темам 1-5 1. Создайте таблицу Договора, согласно структуре, описанной в таблице 1.3 (см. тему 1). Заполните таблицу данными (не менее 20 записей). 2. Создайте однотабличную пользовательскую форму для ввода и редактирования данных таблицы Договора. 3. Для данных, содержащихся в таблице Договора, • в режиме формы осуществите поиск одной из записей; • в режиме таблицы отсортируйте записи по возрастанию значений одного из полей; • отфильтруйте данные в соответствии с критерием отбора. 4. Сформируйте запрос-выборку, позволяющий получить из таблицы Договора данные: • о договорах, страховая сумма которых превышает 1000 рублей; • о договорах страхования от протечек; • о договорах страхования от краж. 5. Создайте запрос с параметрами, позволяющий получить данные о договорах по номеру агента. 6. С помощью мастера создайте детальный отчёт для вывода данных о номере договора, дате его заключения и страховой сумме.
39
ТЕМА 6. ПРОЕКТИРОВАНИЕ МНОГОТАБЛИЧНОЙ БАЗЫ ДАННЫХ Урок 6.1. Установление связей между таблицами Краткая справка О целостности БД. Целостность данных – комплекс правил, обеспечивающих защиту данных от разрушения из-за несогласованных изменений или отказа системы (см. Приложение 4). Для таблиц с установленным ключевым полем в каждой из них возможно создание определённых взаимоотношений. MS Access использует эти взаимоотношения для связывания данных в каждом новом запросе, форме или отчёте, включающих связанные таблицы. Связи в базах данных обычно описываются в терминах базовая / подчинённая таблица. Создать связь между таблицами можно, если в них есть совпадающие поля (см. Приложение 4). Связь создается парой полей, одно из которых находится в базовой таблице, а другое – в подчинённой. Они могут содержать совпадающее значение. Когда значение в связанном поле записи базовой таблицы совпадает со значением в связанном поле подчинённой таблицы, эти две записи называются связанными. MS Access не требует жёсткого соответствия между базовыми и подчинёнными записями. Если при создании связи не наложено условие целостности данных, в структуре базы могут присутствовать базовые записи без подчинённых и подчинённые записи без базовых. Если же условие целостности данных установлено, то не допускается существование подчинённой записи без наличия соответствующей ей базовой записи. Это приводит к невозможности изменения значения ключевого поля в записи или удаления записи в базовой таблице до тех пор, пока существуют связанные с ней записи в подчинённой таблице. В MS Access возможно создание двух типов связей: отношение «один-к-одному» или отношение «один-ко-многим». Если ни одно из связываемых полей не является ключевым или если типы данных в связываемых полях различны, то MS Access не может установить природу связи, и такая связь описывается, как «не определено». Однако если связанное поле базовой таблицы является ключевым, то тип связи определяется по следующим правилам: • если в связанном поле подчинённой таблицы содержится только уникальное значение, предполагается, что имеет место связь типа «один-к-одному»;
40
• если в подчинённой таблице содержатся повторяющиеся значения, предполагается, что имеет место связь типа «один-ко-многим». Для установления отношения «многие-ко-многим» необходимо создать связующую таблицу, содержащую ключевые поля обеих связываемых таблиц. Независимо от того, какой тип связи существует между таблицами, можно указать, какие записи будут отображаться при выводе в таблице совместной информации. Имеются следующие варианты: • включение только тех записей, в которых связанные поля обеих таблиц совпадают. В этом случае записи, не имеющие соответствия в другой таблице, исключаются; • включение всех записей из базовой таблицы независимо от того, имеются ли соответствующие им записи в подчинённой таблице, и исключение тех записей подчинённой таблицы, для которых нет соответствия в базовой таблице. В этом случае поля не соотнесённых записей подчинённой таблицы остаются пустыми, а некоторые записи из подчинённой таблицы могут не встретиться; • включение всех записей из подчинённой таблицы независимо от того, имеются ли соответствующие им записи в базовой таблице, и исключение тех записей базовой таблицы, для которых нет соответствия в подчинённой таблице. В этом случае поля не соотнесённых записей базовой таблицы остаются пустыми, а некоторые записи из базовой таблицы могут не встретиться. Учебное задание 6.1 Используя возможности MS Access, установите связи между созданными таблицами Клиенты, Агенты и Договора базы данных STRAXOV. Технология работы выполнения учебного задания 6.1 1. Откройте ранее созданную базу данных STRAXOV.MDB. В диалоговом окне «База данных: STRAXOV» появляется список таблиц: Агенты, Договора, Клиенты. 2. Задайте ключевые поля в таблицах Агенты и Клиенты. В качестве ключевого поля выберите поля «Номер клиента» в таблице Клиенты и «Номер агента» в таблице Агенты. Для этого выполните следующие действия: • откройте таблицу Клиенты в режиме конструктора, выделите поле «Номер клиента» и нажмите кнопку «ключ» на панели инструментов (рис. 6.1); • откройте таблицу Агенты в режиме конструктора, выделите поле «Номер агента» и нажмите кнопку «ключ» на панели инструментов.
41
Рис.6.1
3. Расположите две таблицы базы данных в окне «Схема данных». Для этого выполните команду меню СЕРВИС/ Схема данных... После этих действий на экран выводится окно «Схема данных», поверх которой располагается окно «Добавить таблицу». 4. Добавьте таблицы в окно «Схема данных». Для этого: • в окне «Добавление таблицы» из списка таблиц выберите последовательно все три таблицы (установите курсор на имя таблицы и нажмите кнопку «Добавить»). Этого же результата можно добиться, если выполнить команду СВЯЗИ/ Добавить таблицу; • таблицы расположатся в окне в произвольном порядке. После этого нажмите кнопку «Закрыть» (рис.6.2).
Рис. 6.2
42
5. Установите связи между таблицами Договора и Клиенты. Для этого: • протащите указатель мыши от поля «Номер клиента» таблицы Клиенты к полю «Номер клиента» таблицы Договора; • в появившемся диалоговом окне «Связи» установите флажок «Обеспечение целостности данных» (декларируется тип отношения «один-комногим») и нажмите кнопку «Создать». 6. Установите связь между таблицами Договора и Агенты. Для этого: • протащите указатель мыши от поля «Номер агента» таблицы Агенты к полю «Номер агента» таблицы Договора; • в появившемся диалоговом окне «Связи» установите флажок «Обеспечение целостности данных», (декларируется тип отношения «один-комногим») и нажмите кнопку «Создать» (рис. 6.3). Визуальным результатом будет линия связи (рис. 6.4).
Рис 6.3
6. Сохраните установленные между таблицами связи, выбрав пункт меню ФАЙЛ/ Сохранить и выйдите из режима схемы данных: ФАЙЛ/ Закрыть.
Рис. 6.4
43
7.Закройте базу данных, выполнив команду меню ФАЙЛ/ Закрыть. Контрольные вопросы 1. Могут ли записи в ключевом поле иметь одинаковые значения? 2. Могут ли отличаться типы полей, между которыми устанавливается связь? 3. Может ли одна таблица иметь несколько внешних ключей? 4. Какова может быть причина того, что тип отношений между полями «Номер агента» в таблицах Договора и Агенты оказывается не определённым? 5. Почему в учебном задании 6.1 использовался тип отношений «один-ко-многим»?
ТЕМА 7. СОЗДАНИЕ ФОРМ ДЛЯ МНОГОТАБЛИЧНОЙ БАЗЫ ДАННЫХ Урок 7.1. Разработка многотабличной пользовательской формы ввода данных Краткая справка Использование мастера форм – это наиболее простой и быстрый способ создания формы, содержащей данные из нескольких таблиц. Мастер форм ускоряет процесс создания форм, выполняя автоматически всю основную работу. В первом окне мастера форм можно выбрать поля, которые должны быть включены в форму. Это могут быть поля из одной или нескольких таблиц. При использовании мастера форм для создания формы на основе нескольких таблиц создается инструкция SQL. Эта инструкция содержит сведения о том, какие таблицы и поля нужно использовать. Возможные ошибки, возникающие при создании формы, и способы их устранения приведены в Приложении 10. С помощью мастера можно создать обычную или составную форму, отображающую данные из нескольких таблиц. Составной является форма, содержащая одну или несколько подчинённых форм. Подчинённые формы используются для показа данных из таблиц с отношением «один-ко-многим». Учебное задание 7.1 Допустим, что один из агентов вовремя не сдал информацию о сделке по уважительной причине, и запись с информацией о клиенте в таблице Клиенты отсутствует, также как и информация о договоре страхования. Требуется построить составную форму и ввести недостающую информацию в базу данных. В рамках построенной информационно-логической модели рассмотрим возможности: • создание формы, содержащей поля двух связанных между собой таблиц; • ввод информации в таблицы на основе использования составной формы.
44
Технология выполнения учебного задания 7.1 Этап 1. Создание простой формы 1. Откройте ранее созданную базу данных STRAXOV.MDB. В диалоговом окне «STRAXOV: база данных» появляется список таблиц: Агенты, Договора, Клиенты. 2. Создайте многотабличную форму с использованием мастера. Для этого: • перейдите на вкладку «Формы» и нажмите кнопку «Создать»; • в диалоговом окне «Новая форма» выберите в качестве источника данных таблицу Клиенты. Выберите «Мастер форм» и нажмите кнопку «ОК»;
Рис. 7.1
• выберите таблицу Клиенты и задайте в качестве полей формы поля «Фамилия», «Имя», «Отчество», «Город», «Улица», «Номер дома», «Номер квартиры», «Телефон», нажимая после выбора каждого указанного поля кнопку (рис. 7.1); • в окне Таблицы/запросы выберите таблицу Договора, задайте все её поля в качестве полей формы, нажимая последовательно на кнопку , и окончательно на кнопку «Далее»; • выберите тип представления данных для таблицы Клиенты – подчинённая форма; • в следующем окне выберите тип формы – «ленточный» и нажмите кнопку «Далее»; • в следующем окне выберите стиль формы «обычный» и нажмите кнопку «Далее»; 45
• введите заголовок новой формы в окне «Форма» – «Страхование» и нажмите кнопку «Готово». 3. Введите новую информацию в базу данных, используя многотабличную форму. Для этого пролистайте данные таблицы Агенты до конца, чтобы вывести пустую запись, и введите информацию о договоре 1123 с клиентом Петриченко Валерием Сергеевичем (рис. 7.2). Остальную информацию придумайте сами.
Рис. 7.2
4. Закройте режим формы, выполнив команду меню ФАЙЛ/ Закрыть. Этап 2. Создание составной формы 5. Откройте ранее созданную базу данных «STRAXOV.MDB». В диалоговом окне «База данных: STRAXOV» появляется список таблиц: Агенты, Договора, Клиенты. 6. Создайте новую форму для таблицы Агенты. Для этого: • перейдите на вкладку «Форма» и нажмите кнопку «Создать»; • в диалоговом окне «Создание формы» выберите таблицу Агенты и установите режим «Автоформа: в столбец» (рис.7.3); • сохраните полученную форму с помощью команды ФАЙЛ/ Сохранить под произвольным именем, например Агенты++.
46
Рис. 7.3
7. Создайте новую форму для таблицы Клиенты. Для этого: • нажмите кнопку «Создать»; • в диалоговом окне «Создание формы» выберите таблицу Клиенты и установите режим «Автоформа: в столбец»; • сохраните полученную форму с помощью команды ФАЙЛ/ Сохранить под произвольным именем, например Клиенты++. 8. Создайте новую форму для таблицы Договора. Для этого: • снова нажмите клавишу «Создать»; • в диалоговом окне «Создание формы» выберите таблицу Договора и установите режим Мастер форм, а затем «ОК»; • выберите из имеющихся полей таблицы Договора в качестве полей формы все поля, нажимая после выбора каждого указанного поля кнопку , а по окончании выбора – кнопку «Далее»; • выберите внешний вид формы «ленточный» и нажмите кнопку «Далее»; • выберите стиль формы «обычный» и нажмите кнопку «Далее»; • введите заголовок новой формы, например, «Договора-2» и нажмите кнопку «Готово»; • сохраните полученную форму с помощью команды ФАЙЛ/ Сохранить. 9. Создайте составную форму. Для этого: • закройте форму «Договора –2» и откройте её в режиме Конструктор; • увеличьте размеры окна Конструктора и области данных формы, устанавливая курсор на границы области и передвигая их на новое место при нажатой клавише мыши, так, чтобы после последнего поля в области данных появилось свободное место.
47
10. Выделите поле «Номер клиента» и после того, как курсор приобретет вид раскрытой ладони, нажмите правую кнопку мыши, а в открывшемся окне выберите команду Преобразовать элемент / Поле со списком (рис.7.4).
Рис. 7.4
11. После того как в правой части поля «Номер клиента» появится кнопка раскрытия поля (признак поля со списком), снова выделите это поле (курсор приобретает вид раскрытой ладони) и нажмите правую кнопку мыши, а в открывшемся окне выберите «Свойства». Далее задайте следующие настройки: • в открывшемся окне «Поле со списком Номер клиента» выберите вкладку «Макет», на которой задайте значение полей: «Число столбцов» – 4, «Ширина столбцов» – 0 см; 3 см; 2 см; 2 см и т.д. (рис. 7.5);
Рис. 7.5
48
• далее выберите вкладку «Данные» и задайте значение следующих полей: «Данные» – «Номер клиента», «Тип источника строк» –«Таблица/ запрос», «Присоединенный столбец» – «1» и т.д. (рис.7.6);
Рис. 7.6
• выберите вкладку «События» и задайте значение полю «Двойное нажатие кнопки». Для этого нажмите кнопку выбора из списка в правом углу поля и выберите «Процедура обработки события». Затем нажмите на кнопку , расположенную справа от кнопки списка (рис.7.7);
Рис. 7.7
• в раскрывшемся окне «Form_Договора-2: модуль класса» вставьте в процедуру Номер_клиента_DblClick оператор открытия формы Клиенты++. Полный текст процедуры приводится ниже: • Private Sub Номер_клиента_DblClick(Cancel As Integer) DoCmd.OpenForm "Клиенты++", , , , , acDialog, "GotoNew" End Sub
49
Рис. 7.8
• закройте окно «Form_Договора-2: модуль класса», нажав на крестик в верхнем правом углу; • закройте окно «Поле со списком Номер клиента», нажав на крестик в верхнем правом углу; • измените заголовок поля «Номер клиента» на «Фамилия клиента». Внимание!! Требуется изменить поле-заголовок, а не поле-значение! 12. Проделайте аналогичные операции с полем «Номер агента» для преобразования его в поле-список. 13. Задайте имя форме, например, «Договора-3», выбрав команду ФАЙЛ/ Сохранить. 14. Перейдите в режим формы с помощью команды Открыть. 15. Введите новую информацию в базу данных, используя составную форму. Для этого выполните следующие действия: • на экране вывода составной формы «Договора-3» пролистайте данные таблицы Договора до конца, чтобы вывести пустую строку, и введите в поле «№ договора» новое значение;
Рис. 7.9
• если в раскрывающихся списках агентов и клиентов нет нужной информации, дважды щелкните по нужному полю, и вы откроете форму Клиенты++ либо Агенты++. 16. Закройте режим формы, выполнив команду меню ФАЙЛ/ Закрыть. 17. Закройте базу данных, выполнив команду меню ФАЙЛ/ Закрыть. 50
Контрольные вопросы 1. Какие существуют режимы просмотра данных в БД? 2. В чем преимущества и недостатки представления данных в виде формы? 3. В чем преимущества и недостатки представления данных в табличном виде? 4. Можно ли изменять дизайн уже существующей формы? Как? Самостоятельное задание 7.1 Создайте составную форму по таблице Договора, с внешним видом формы «в один столбец».
ТЕМА 8. СОЗДАНИЕ ЗАПРОСОВ ДЛЯ МНОГОТАБЛИЧНОЙ БАЗЫ ДАННЫХ Урок 8.1. Формирование простых запросов Краткая справка Для получения определённых данных из базы данных пользователь может построить запрос. Результатом выполнения запроса является таблица с временным набором данных. Записи временного набора могут включать поля из одной или нескольких таблиц. Запросы используются аналогично таблицам. Соответствующий временный набор можно просмотреть в табличном представлении. На основе запроса можно построить отчёт или форму. При обновлении данных во временном наборе возможно включение этих изменений в таблицы. Использование запросов позволяет осуществить различные формы доступа к одной и той же информации. MS Access обеспечивает корректную связь между таблицами базы данных за счёт соответствующих друг другу значений эквивалентных полей этих таблиц. При включении в запрос связанных таблиц базы данных в окне «Запрос-выборка» между ними автоматически возникает соединительная линия. Если между таблицами, включенными в запрос, нет связи, и она не возникает автоматически, можно соединить таблицы в окне «Запрос-выборка». Для этого необходимо наличие в них полей с совпадающими данными. Однако надо учесть, что такое соединение сохраняется лишь для данного запроса и при использовании этих же таблиц в новом запросе их требуется соединять заново. Кроме запросов-выборок существуют и другие виды запросов, а именно: • запрос на создание таблицы создает для хранения информации новую таблицу и оказывается особенно полезным для создания резервных копий информации; • запрос на добавление присоединяет записи к существующей таблице; • запрос на обновление позволяет изменить значение любого поля базы данных для записей, удовлетворяющих указанным критериям; 51
• запрос на удаление уничтожает в таблице все записи, отвечающие поставленным критериям; • перекрёстный запрос позволяет упорядочить информацию в базе данных по двум и более значениям группировки и на основании общих подмножеств соответствующих групп сделать те или иные выводы (см. тему 4). В запросах можно выполнять вычисления следующих типов: • встроенные вычисления, называемые «итоговыми», для расчёта следующих значений по группам записей или по всем записям, отобранным в запросе: сумма, среднее, число значений, минимальное или максимальное значение, стандартное отклонение или дисперсия; • пользовательские вычисления для осуществления расчётов с числовыми и строковыми значениями или значениями дат для каждой записи с использованием данных из одного или нескольких полей. Результаты вычислений, выводящиеся в поле, не запоминаются в базовой таблице. Вычисления снова производятся всякий раз, когда выполняется запрос, поэтому результаты всегда представляют текущее содержимое базы данных. Обновить вычисленные результаты вручную невозможно. Учебное задание 8.1 Постройте запрос, позволяющий выводить фамилию, имя, отчество и город проживания агентов, которые заключили договора, а также размеры страховых сумм и страховых взносов. Страховые взносы должны быть вычислены с учётом и без учёта скидок (условия предоставления скидок см. техническое задание). Технология выполнения учебного задания 8.1 1. Откройте ранее созданную базу данных STRAXOV. В диалоговом окне «STRAXOV: база данных» появляется список таблиц: Агенты, Договора, Клиенты. 2. На основании таблиц Агенты и Договора создайте запрос, содержащий вычисляемые поля «Страховой взнос» и «Страховой взнос со скидкой». Создайте новый запрос на основе связанных таблиц. Для этого: • выберите вкладку «3апрос» и нажмите кнопку «Создать»; • в диалоговом окне «Создание запроса» нажмите кнопку «Простой запрос», после чего появляется окно «Создание простых запросов»; • включите поля из двух таблиц в запрос. Из таблицы Агенты в окно «Выбранные поля» запроса перетащите поля «Фамилия», «Имя», «Отчество». Из таблицы Договора перетащите поля «Дата договора», «Страховая сумма» (рис.8.1). Затем нажмите кнопку «Далее».
52
Рис. 8.1
3. В следующем окне выберите вид отчёта – подробный. 4. Присвойте запросу имя «Страховой взнос». И выберите кнопку «Изменение структуры запроса». Нажмите кнопку «Готово». 5. В следующем окне установите условие отбора. Для отбора агентов, подлежащих премированию, необходимо в строке «Условие отбора» под полем «Страховая сумма» ввести выражение >0, а под полем «Дата договора» ввести условие >31.12.98 AND , =, 234 больше 234 (например, поля «Количество») Отбор записей, для которых значение числового поля < 1 200,45 менее 1200,45 (например, поля «Цена») Отбор записей, содержащих в поле «Фамилия» фамилии, >= "Иванов" начиная с «Иванов», и до конца алфавита Between #02-фев-1999# Отбор записей, содержащих в поле «Дата» даты в And #01-дек-1999# диапазоне от 2-фев-99 до 1-дек-99 (ANSI-89) Between '02-фев-1999' Отбор записей, содержащих в поле «Дата» даты в And '01-дек-1999' диапазоне от 2-фев-99 до 1-дек-99 (ANSI-92) несовпадающие значения («Not») Отбор записей, не содержащих в текстовом поле комбинации символов «США» (например, содержащих в Not "США" поле «Страна получателя» любую страну за исключением США) Отбор записей, не содержащих в числовом поле Not 2 цифры 2 (например, отбор всех сотрудников, код которых, указанный в поле идентификации, не равен 2) Отбор записей, для которых данные текстового поля не начинаются на «Т» (например, отбор сотрудников, Not T* фамилии которых не начинаются с буквы «T» (ANSI-89)) Отбор записей, для которых данные текстового поля не начинаются на «Т» (например, отбор сотрудников, Not T% фамилии которых не начинаются с буквы "T" (ANSI-92)) значения в списке (In) Отбор записей, содержащих в текстовом поле In("Канада", определённые значения (например, содержащих в поле "Великобритания") «Страна» значения «Канада» или «Великобритания») Отбор записей, содержащих в текстовом поле In(Франция, Германия, определённые значения (например, содержащих в поле Япония) «Страна» значения – Франция, Германия или Япония)
78
Продолжение таблицы
текст, часть текста или совпадающие значения Отбор записей, содержащих в текстовом поле "Киев" определённые значения (например, содержащих в поле «Город проживания» значение «Киев») Отбор записей, содержащих в текстовом поле "Киев" Or "Минск" определённые значения (например, содержащих в поле «Город проживания» значения «Киев» или «Минск») Отбор записей, значения в текстовом поле которых >="Н" начинаются с букв, находящихся в диапазоне от «Н» до «Я» (ANSI-89) Отбор записей, значения в текстовом поле которых Like "С*" начинаются с буквы «С» (ANSI-89) Отбор записей, значения в текстовом поле которых Like "С%" начинаются с буквы «С» (ANSI-92) Отбор записей, для которых данные текстового поля оканчиваются двумя определёнными символами Right([OrderID],2)="99" (например, коды идентификации которых, указанные в поле «Код» заканчиваются на 99) Отбор записей, для которых значения текстового поля Len([Название]) > превышает 30 символов (например, компании, названия Val(30) которых, указанные в поле «Название», превышают 30 знаков) значения поля (Like) Отбор записей, для которых значения текстового поля Like "С*" начинаются с буквы «С» (ANSI-89) Отбор записей, для которых значения текстового поля Like "С%" начинаются с буквы «С» (ANSI-92) Отбор записей, для которых значения текстового поля Like "*Импорт" заканчиваются словом «Импорт» (ANSI-89) Отбор записей, для которых значения текстового поля Like "%Импорт" заканчиваются словом «Импорт» (ANSI-92) Отбор записей, для которых значения текстового поля Like "[А-Д]*" находятся в диапазоне от «А» до «Д» (ANSI-89) Отбор записей, для которых значения текстового поля Like "[А-Д]%" находятся в диапазоне от «А» до «Д» (ANSI-92) Отбор записей, для которых значения текстового поля Like "*тр*" содержат сочетание букв «тр» (ANSI-89) Отбор записей, для которых значения текстового поля Like "тр%" начинаются с сочетания букв «тр» (ANSI-92)
79
Продолжение таблицы
Отбор записей, для которых значения текстового поля начинаются со слова «Maison», а второе слово в имени Like "Maison Dew?" содержит четыре буквы, причём первые три из них «Dew», а четвертая неизвестна (ANSI-89) Отбор записей, для которых значения текстового поля начинаются со слова «Maison», а второе слово в имени Like "Maison Dew_" содержит четыре буквы, причём первые три из них «Dew», а четвертая неизвестна (ANSI-92) Отбор записей, для которых значения текстового поля сформировано комбинацией значений Полное Имя: [Имя] & соответствующих записи определённых полей "9" & [Фамилия] (например, отображение в некотором поле, например, «Полное имя» значения полей «Имя» и «Фамилия», разделенных пробелом) Отбор записей, для которых значения текстового поля сформировано комбинацией значений Адрес: [Город] & "9" & соответствующих записей определённых полей. [Район] & "9" & [Индекс] Например, отображение в поле «Адрес» значений полей «Город», «Область» и «Индекс», разделенных пробелами Отображение в текстовом поле первого символа Первая Буква Товара: значения другого текстового поля (например, в поле Left([Название Товара], 1 «Первая Буква Товара» – первого символа значения ) поля «Название Товара») Отображение в текстовом поле последних двух Код Типа: символов значения другого текстового поля (например, Right([Код Продукта], 2) отображение в поле «Код» последних двух знаков значения поля «Код Продукта») Отображение в текстовом поле части символов Код Района: значения другого текстового поля (например, Mid([Телефон], 2, 3) отображение в поле «Код Района» трех знаков, начиная со второго, значения поля «Телефон») даты Отбор записей, для которых значения поля с типом #2/2/2000# «Дата» – 2 февраля 2000 (ANSI-89) Отбор записей, для которых значения поля с типом '2/2/2000' «Дата» – 2 февраля 2000 (ANSI-92) Отбор записей, для которых значения поля с типом Date() «Дата» – текущая дата Отбор записей, для которых значения поля с типом Between Date( ) And «Дата» – интервал между текущей датой и датой, DateAdd("m", 3, Date( )) отстоящей от нее на три месяца 80
Окончание таблицы
Year([Дата]) = 1999
Отбор записей, для которых значения поля с типом «Дата» – отстоит более чем на 30 дней от текущей даты Отбор по полю «Дата» записей, сделанных в 1999 г.
DatePart("q", [Дата])= 4
Отбор по полю «Дата» записей четвертого квартала
< Date( ) - 30
DateSerial(Year ([Дата]), Отбор по полю «Дата» записей, сделанных в Month([Дата]) + 1, 1) – 1 последний день каждого месяца Year([Дата]) = Year(Now()) And Отбор по полю «Дата» записей текущего года и месяца Month([Дата]) = Month(Now()) пустое значение поля ( Null или строка нулевой длины ) Отбор по текстовому полю записей, содержащих в Is Null этом поле значение Null, т.е. являющихся пустыми Отбор по текстовому полю записей, содержащих в Is Not Null этом поле определённое значение Отбор по текстовому полю записей, содержащих в "" этом поле строку нулевой длины Статистические функции по подмножеству Отбор записей, для которых значения числового поля > (DStDev("[Фрахт]", выше среднего арифметического плюс стандартное "Заказы") + отклонение (например, отбор по полю «Фрахт» всех DAvg("[Фрахт]", заказов, для которых цена фрахта поднялась выше "Заказы")) средней плюс стандартное отклонение цены) >Davg("[Количество]", Отбор записей, для которых значения числового поля "Заказано") превышают среднее арифметическое (например, отбор по полю «Количество» заказанных товаров, количество которых превышает среднее
81
Приложение 8 Образец договора страхования
Страховой полис Серия 702 № _____ от __ . __ . __
Настоящий страховой полис выдан в подтверждении того, что страховая компания «ЮЖУРАЛ-СТРАХ-Инвест», в дальнейшем «Страховщик» и проживающий по адресу г. ___________, ул._______________, дом ____, кв. ____ в дальнейшем «Страхователь», заключили договор страхования имущества, в соответствии с утвержденными Страховщиком Правилами страхования, действующими на момент выдачи настоящего полиса, согласно государственной лицензии на право осуществления страховой деятельности. Договор страхования заключен, исходя из сведений о характере страхового риска, сообщенных Страхователем в ответах на письменный запрос Страховщика, и действует на условиях, изложенных в настоящем страховом полисе. ОБЪЕКТ СТРАХОВАНИЯ Объектом являются имущественные интересы лица, указанного в настоящем страховом полисе. СТРАХОВОЙ РИСК, СТРАХОВОЙ СЛУЧАЙ Договор страхования заключен на случай потери или повреждения имущества, в результате кражи, пожара, затопления. Страховым случаем является событие, предусмотренное договором страхования, с наступлением которого возникает обязанность Страховщика по выплате страхового возмещения. Застрахованное лицо ________________________________________________ СТРАХОВАЯ СУММА Страховая сумма по договору составляет ___________________________ руб. СРОК ДЕЙСТВИЯ ДОГОВОРА Дата начала действия договора __.__.____. Срок действия договора 1 год. Договор страхования вступает в силу с ноля часов дня, следующего за днем уплаты страхового взноса. СТРАХОВОЙ ВЗНОС Страховой взнос по договору страхования составляет __________________руб. Страховщик /ФИО Агента/ (подпись) М.П.
82
Приложение 9 Ошибки, возникающие при создании отчётов При печати в конце отчёта появляется пустая страница Убедитесь, что параметр Высота для примечаний отчёта имеет значение нуль. Все остальные страницы отчёта пусты Убедитесь, что сумма значений ширины формы или отчёта и ширины левого и правого полей не превышает ширину листа бумаги, указанную в диалоговом окне «Параметры страницы» меню «Файл». При разработке макетов руководствуйтесь следующей формулой: ширина отчёта + левое поле + правое поле