
- •Основные приемы работы в субд Access
- •Лабораторная работа № 10 создание системы таблиц базы данных и организация связей между ними
- •Лабораторная работа № 11 запросы базы данных и их конструирование
- •Iif(условие; команда 1;команда 2).
- •Лабораторная работа № 12 оформление форм для ввода и вывода информации. Редактирование элементов формы
- •Лабораторная работа № 13 подготовка отчетов. Редактирование структуры отчета
- •Лабораторная работа № 14 автоматизация работы пользователя с помощью макросов, модулей и кнопочных форм
- •Указания к выполнению расчетно-графической работы
Основные приемы работы в субд Access
Предлагаемое издание содержит описание основных приемов работы с СУБД ACCESS для версии 2000 и представляет собой сборник лабораторных работ, в которых подробно рассмотрено решение одной из задач. Всего разработано пять лабораторных работ, охватывающие темы: создание структуры базы данных, построение запросов, форм и отчетов, а также использование кнопочных форм, макросов и модулей. Издание предназначено для обучения работы в ACCESS и рекомендуется к использованию в учебном процессе ВУЗов.
Лабораторная работа № 10 создание системы таблиц базы данных и организация связей между ними
Информация
Создание базы данных проводится в несколько этапов:
этап. Определение структуры базы данных. На этом этапе устанавливается, по какому принципу будет располагаться информация (в виде таблиц, файлов и т.п.), какой тип отношений будет между данными и т.д.
этап. Разработка средств для заполнения базы данных справочной и рабочей информацией, заполнение базы данных, определение областей доступа к информации для разных пользователей.
этап. Организация средств поиска и обработки информации базы данных.
этап. Оформление результатов поиска и обработки информации в виде отчетов, писем, диаграмм и т.д.
В состав интегрированного пакета Microsoft Office входит система управления базами данных Access, которая поддерживает реляционную модель данных. Реляционные модели отличаются простотой структур данных, удобным для пользователя табличным представлением и доступом к данным. Реляционная модель данных является совокупность простейших двухмерных таблиц - отношений (объектов модели). Связи между двумя логически связанными таблицами в реляционной модели устанавливаются по равенству значений одинаковых атрибутов таблиц - отношений.
Сформулируем задачу, для решения которой необходимо использовать систему управления базами данных: требуется спроектировать базу данных, которая содержит сведения о марках легковых автомобилей, продавцах автомобильного салона, покупателях автомобиля и сделках по продаже автомобилей в салоне.
Под проектированием реляционной базы данных следует понимать принятие решения о количестве таблиц, входящих в эту базу данных, количестве полей входящих в каждую таблицу, типах этих полей, отношениях между таблицами.
Всю информацию, входящую в базу данных, разделим на две части: нормативно-справочную (сведения о марках автомобилей, покупателях и продавцах) и рабочую или оперативную (сведения о сделках). Эту информацию разместим в четыре таблицы.
Таблица Автомобили должна содержать поля (атрибуты): Код модели, Название модели, Мощность двигателя, Цвет, Количество дверей, Коробка передач, Обивка, Другое оснащение, Заводская цена, Транспортные издержки, Предпродажная подготовка, Специальная модель. Таблица Продавцы. Код продавца, Фамилия, Имя, Отчество, Дата рождения, Дата поступления на работу, Домашний адрес, Телефон.
Таблица Покупатели: Код покупателя, Фамилия, Имя, Отчество, Дата рождения, Дата поступления на работу, Домашний адрес, Телефон, Постоянный клиент.
Таблица Заказы. Номер заказа, Код модели, Код продавца, Код покупателя, Дата.
Следует обратить внимание на то, что последняя таблица содержит ряд полей (Код модели, Код продавца, Код покупателя), которые должны использовать информацию из нормативно-справочных таблиц, поэтому с помощью этих полей будут осуществляться связи между таблицами.
Задание 10.1
С помощью средств Access создать таблицу Автомобили.
Указание
Выполните открытие системы управления базами данных Access, используя либо главное меню кнопки Пуск, либо панель инструментов Office. Пиктограммой системы является изображение ключа. При открытии системы в диалоговом окне Microsoft Access установите в области Создание базы данных активное положение переключателя Новая база данных и подтвердите выполнение действия кнопкой Ok.
Создание новой базы данных первоначально предполагает определение пути и имени файла. Поэтому в окне Файл новой базы данных в поле Имя укажите Avto. По умолчанию принимается расширение файла MDB. Подтвердите выполнение действия.
Система Access открывает диалоговое окно Avto: база данных и готова к созданию таблиц и других составляющих частей. По умолчанию открытой является закладка Таблицы (см. рис. 10.1).
В окне Avto: база данных выберете кнопку Создать, в предлагаемом списке окна Новая таблица - Конструктор, подтвердите создание кнопкой Ok или в окне базы данных выберите пункт Создание таблицы в режиме конструктора.
Открывается окно Таблица1: Таблица, в которой необходимо определить столбцы таблицы и тип данных, находящихся в этом столбце. В столбце Имя поля вводится название атрибута, в столбце Тип данных -определяется один из типов перечисляемого списка, в столбце Описание — определяется назначение выбранного столбца. В перечисляемом списке для типа данных предлагаются варианты, приведенные в табл. 10.1.
Рис. 10.1. Вид окна базы данных автомобили
Таблица 10.1
Описание типов данных, используемых в Access.
Название типа |
Описание типа |
Текстовое |
Текст или числа, не требующие проведения расчетов. Размер поля до 255 символов. Устанавливается по умолчанию. |
Поле MEMO |
Длинный текст. Размер текста до 65535 символов. |
Числовой |
Числовые данные, используемые для расчетов. Размер поля 1, 2, 4 или 8 байт в зависимости от свойств поля |
Дата и время |
Дата и время, относящиеся к годам с 100 по 9999. Размер поля 8 байт. |
Денежный |
Денежные значения и числовые данные, используемые в математических расчетах и содержащие до 15 знаков в целой части и до 4 знаков в дробной. Размер поля 8 байт. |
Счетчик |
Уникальное, последовательно возрастающее или случайное число, автоматически выводящееся на экран при добавлении записи в базу данных. Размер 4 байта. |
Логический |
Логические значения, так же как поля, содержащие одно из двух возможных значений. Размер поля 1 байт. |
Поле объекта OLE |
Объект, связанный или внедренный в поле таблицы. Например: рисунок из Paint или текстовый файл Word и т.д. Размер поля до 1 Гбайта. |
Гиперссылка |
Строка состоящая из букв и цифр, представляющая собой адрес ссылки: текст, путь к файлу, смещение внутри файла и т.д. |
Мастер подстановок |
Создает поле, в котором предлагается выбор значений из списка или поля со списком, содержащих значения столбца другой таблицы. Выбор этого типа запускает мастер подстановок, который определяет размер и тип ключевого поля |
Для таблицы Автомобили необходимо определить поля и свойства, приведенные в табл. 10.2.
Таблица 10.2.
Структура таблицы базы данных Автомобили
Имя поля |
Тип данных |
Описание |
Параметры поля |
Код модели |
Числовой |
Код модели по каталогу автомобилей |
Размер поля: Целое Количество десятичных знаков: 0 Обязательное поле: Да Индексированное поле: Да (совпадения не допускаются). Поле определяется как ключевое. |
Название модели |
Текстовое |
Полное название модели по каталогу автомобилей |
Размер поля: 20 Обязательное поле: Да |
Мощность двигателя |
Числовой |
Мощность двигателя данной модели, лошадиная сила |
Размер поля: Целое Количество десятичных знаков: 0 Условие на значение: >0 Сообщение об ошибке: Введено отрицательное значение для мощности двигателя! Значение по умолчанию: 40 Обязательное поле: Да |
Цвет |
Текстовое |
Цвет модели по каталогу автомобилей |
Размер поля: 20 Обязательное поле: Да |
Количество дверей |
Числовой |
Количество дверей данной модели |
Размер поля: Целое Количество десятичных знаков: 0 Условие на значение: >0 and <6 Сообщение об ошибке: Введено не верное число для количества дверей автомобиля! Значение по умолчанию: 4 Обязательное поле: Да |
Коробка передач |
Числовой |
Количество возможных передач для переключения скорости для данной модели |
Размер поля: Целое Количество десятичных знаков: 0 Условие на значение: >0 and <7 Сообщение об ошибке: Введено не верное число для количества передач автомобиля! Значение по умолчанию: 6 Обязательное поле: Да |
Обивка |
Текстовое |
Обивка салона модели по каталогу автомобилей |
Размер поля: 20 Обязательное поле: Да |
Другое оснащение |
Поле MEMO |
Перечисление дополнительного оснащения |
|
Заводская цена |
Денежный |
Стоимость автомобиля на заводе изготовителе - |
Формат поля: Денежный Количество десятичных знаков: 2 Условие на значение: >0 Сообщение об ошибке: Введено отрицательное число для стоимости автомобиля! Обязательное поле: Да |
Транспортные издержки |
Денежный |
Затраты на доставку автомобиля в пункт продажи |
Формат поля: Денежный Количество десятичных знаков: 2. Условие на значение: >0 Сообщение об ошибке: Введено отрицательное число транспортных издержек! Обязательное поле: Да |
Предпродажная подготовка |
Денежный |
Стоимость предпродажной автомобиля в пункте продажи |
Формат поля: Денежный Количество десятичных знаков: 2 Условие на значение: >0 Сообщение об ошибке: Введено отрицательное число предпродажной подготовки автомобиля! Обязательное поле: Да. |
Специальная модель |
Логический |
Указание является ли модель специальной. |
Формат поля: Да \ Нет |
Создание таблицы должно заканчиваться установкой ключевого поля. Для этого надо установить курсор в поле, которое предполагается быть ключевым и выполнить команду Правка / Ключевое поле.
Выполните сохранение построенной таблицы с именем Автомобили, выполнив команду Файл / Сохранить и закройте конструктор таблицы Автомобили.
Задание 10.2
Выполните создание таблиц Продавцы и Покупатели.
Указание
В каждую из этих таблиц желательно добавить поле паспортных данных. Для полей Телефон, Домашний адрес и Паспортные данные необходимо создать Маску ввода.
Создание маски ввода производится следующим образом:
установите курсор в поле, для которого производится выбор или построение маски ввода;
в области Свойства поля выберете поле Маска ввода и нажмите кнопку с многоточием в правой части этого поля;
в диалоговом окне Создание масок ввода в списке Маска ввода выберете необходимый шаблон и подтвердите кнопкой выбор кнопкой Готово. Если необходимой маски нет, то создание новой маски производится после нажатия кнопки Список,
в окне Настройка масок ввода заполните необходимые поля: Описание должно содержать назначение выбранной маски ввода (например, маска для ввода телефонного номера с кодом города); Маска ввода определяет шаблон для данных этого поля, используемые символы шаблоны приведены в табл. 10.3; Символ шаблона может содержать символ для заполнения свободного пространства шаблона (по умолчанию предлагается черта подчеркивания); Образец данных содержит пример заполнения шаблона; Тип маски определят либо эта маска для даты либо для свободного текста;
Нажатие кнопки Закрыть возвращает пользователя в окно Создание масок ввода, и в списке масок появляется новая маска.
Таблица 10.3
Шаблоны для создания маски ввода
Символ |
Описание |
Пример шаблона |
Пример заполнения |
0 |
Цифра (от 0 до 9, ввод обязателен; символы плюс и минус не допускаются). |
(000) 000-0000 |
(206) 555-0248 |
9 |
Цифра или пробел (ввод не обязателен; символы плюс и минус не допускаются). |
(999) 00-00-00 |
() 30-39-34 (3411)30-39-34 |
# |
Цифра или пробел (ввод не обязателен; пустые символы преобразуются в пробелы, допускаются символы плюс и минус). |
#999 |
-20 |
L |
Буква (от А до Z или от А до Я, ввод обязателен). |
LL00000-0000 |
Db51392-0493 |
? |
Буква (от А до Z или от А до Я, ввод не обязателен). |
L?????????? |
Мария |
А |
Буква или цифра (ввод обязателен). |
(000) ААА-АААА |
(206) 555-TELE |
А |
Буква или цифра (ввод необязателен). |
(000) ааа-аааа |
(206) 555-TEL |
& |
Любой символ или пробел (ввод обязателен). |
ISBN 0-&&&&&&&&&-0 |
ISBN 1-55615-507-7 |
С |
Любой символ или пробел (ввод необязателен). |
ISBN 0- CCCCCCCCCC-O |
ISBN 1-55615-7 |
. , : ; - / |
Десятичный разделитель и разделители тысяч, значений дат и времени. (Отображаемый символ зависит от настроек языка и стандартов на панели управления Windows.) |
00:00 99/99/00 |
18:50 1.6.99 |
< |
Указывает перевод всех следующих символов на нижний регистр. |
L<?????????????? |
Мария |
> |
Указывает перевод всех следующих символов на верхний регистр. |
>L????L?000L0 |
GREENGR339M3 |
! |
Указывает заполнение маски ввода справа налево, а не слева направо. Заполнение маски символами всегда происходит слева направо. Восклицательный знак в |
(999) 999-9999! |
(206) 555-0248 |
Описание маски ввода может состоять из трех разделов, разделенных знаком точка с запятой, например, (999) 000-0000!; 0; "". Первый раздел обозначает маску ввода, второй - указывает, следует ли сохранять текстовые символы (0 - текстовые символы сохраняются вместе с введенными значениями, 1 или пустое значение - сохраняются только введенные символы), третий - символ, выводящийся в маске ввода на месте пустых символов.
Задание 10.3
Выполните проектирование таблицы Заказы.
Указание
Таблица Заказы содержит поля, которые используют данные из других таблиц. Для организации такой передачи используется мастер подстановок. Рассмотрим создание поле подстановки для выбора модели автомобиля. Перед использованием мастера подстановок необходимо задать ключевое поле и сохранить таблицу.
Установите курсор в поле Тип данных (без указания имени поля) и выберете в раскрывающемся списке Мастер подстановок.
В окне Создание подстановки активизируйте переключатель Столбец подстановки использует значения из таблицы или запроса. Подтвердите действие кнопкой Далее.
Установите переключатель в области Показать в позицию Таблицы и в списке таблиц выберите таблицу Автомобили.
Выберите поля, которые будут доступны для просмотра в мастере подстановок. Для этого выберите поле из списка Доступные поля и с помощью кнопки со знаком «>» или «»» перенесите в список Выбранные поля. Из таблицы автомобили выберите поля: Код модели, Название модели, Мощность двигателя, Цвет, Количество дверей и Заводская цена. Подтвердите действие кнопкой Далее.
Установите флажок в поле Скрыть ключевой столбец и определите ширину каждого столбца. Для этого установите курсор мыши на границу раздела столбцов и перетащите ее, удерживая левую клавишу мыши. Подтвердите действие кнопкой Далее.
Задайте подпись для столбца подстановки: Название модели. Подтвердите действие кнопкой Готово.
Обратите внимание на то, что в Имя поля принимает название ключевого столбца выбранной таблицы и тип этого же поля. Аналогичным образом создаются поля для использования данных из таблиц Продавцы и Покупатели. Ключевым полем для таблицы «Заказы» должно являться поле Код заказа.
Информация
Схема данных является графическим отображением базы данных и используется Access в процессе работы с базой данной. Создание схемы данных позволяет упростить конструирование многотабличных форм, запросов и отчетов, а также обеспечить поддержание целостности взаимосвязанных данных при корректировке таблиц.
Схема данных задает структуру базы данных. В ней определяются и запоминаются связи между таблицами. Схема данных графически отображается в своем окне и, где таблицы представлены списками полей, а связи - линиями между полями разных таблиц. Схема данных ориентирована на работу с таблицами, отвечающих требованию нормализации, между которыми установлены связи: один - ко - многим (1:М) и один - к - одному (1:1). При построении схемы данных Access автоматически определяет по выбранному полю связи между таблицами. Если поле, по которому нужно установить связь, является уникальным ключом как в главной таблице, так и в подчиненной, Access устанавливает связь один - к - одному. Если поле связи является уникальным ключом в главной таблице, а в подчиненной таблице является не ключевым, Access устанавливает связь один - ко многим от главной таблицы к подчиненной.
При выборе в качестве поля связи в главной таблице не ключевого поля Access сообщает, что тип отношения не может быть определен. В этом случае между таблицами можно установить только связь - объединения. Связь объединения обеспечивает объединение записей двух таблиц, имеющих одинаковые значения в поле связи. Причем производится объединение записи из одной таблицы с каждой записью из другой таблицы при условии равенства значений в поле связи. Результатом объединения записей, который определяется выбором одного из трех способов, может быть:
объединение только тех записей, в которых связанные поля обеих таблиц совпадают;
объединение тех записей, в которых связанные поля обеих таблиц совпадают, а также объединение всех записей из первой таблицы, для которых нет связанных во второй с пустой записью второй таблицы;
объединение тех записей, в которых связанные поля обеих таблиц совпадают, а также объединение всех записей из второй таблицы, для которых нет связанных в первой с пустой записью первой таблицы.
Для связей 1 :М можно задать параметр обеспечения целостности данных. Обеспечение целостности данных означает выполнение для взаимосвязанных таблиц перечисленных ниже условий корректировки баз данных:
в подчиненную таблицу не может быть добавлена запись с несуществующим в главной таблице значением ключа связи; в главной таблице нельзя удалить запись, если не удалены связанные с ней записи в подчиненной таблице;
изменение значения ключа связи главной таблицы должно приводить к изменению соответствующих значений в записях подчиненной таблице.
При попытке пользователя нарушить эти условия в операциях добавления или удаления данных в связанных таблицах Access не допускает выполнение операции.
Установление между двумя таблицами связи типа 1 :М и 1:1 и задание для нее параметров целостности данных возможно только при следующих условиях:
связываемые поля имеют одинаковый тип, причем имена полей могут быть различными;
обе таблицы сохраняются в одной базе данных;
главная таблица связывается с подчиненной по первичному простому или составному ключу (или уникальному индексу) главной таблицы.
Если для выбранной связи обеспечивается целостность данных, можно задать режим каскадного обновления и удаления связанных записей. В режиме каскадного обновления связанных записей при изменении значения в поле связи главной таблицы Access автоматически изменит значения в соответствующем поле в подчиненных записях. В режиме каскадного удаления связанных записей при удалении записи из главной таблицы Access выполняет каскадное удаление подчиненных записей на всех уровнях.
Задание 10.4
При всех закрытых окнах таблиц, запросов и т.п. откройте окно схемы данных с помощью команды Сервис / Схема данных.
Задание 10.5
Если открытое окно Схемы данных пусто, то выполните добавление всех таблиц в схему данных.
Указание
Для добавления таблицы в схему данных выполните команду Связи/ Добавить таблицу. При активной закладке Таблицы в списке указаны имена всех таблиц базы данных. Из списка необходимо выбрать таблицу, для которой определяются связи и после выбора кнопки. Добавить таблица помещается в окно Схемы данных. Если для выбранных таблиц определены связи, то они автоматически отображаются. После выбора всех таблиц закройте окно Добавить.
Задание 10.6
Выполните изменение существующих связей: включите каскадное обновление и добавление для каждой связи.
Указание
Для изменения существующей связи надо вызвать окно Связи. Вызов этого окна выполняется с помощью команды Связь/Изменить связь...
после выделения связи для изменения. Выделение связи производится одинарным щелчком левой клавиши мыши на ее изображении. Двойной щелчок клавишей мыши также приводит к открытию этого окна.
Откройте окно Связи для поля Код покупателя. Установите флажки в поля обеспечение целостности данных, каскадного обновления и удаления данных. Подтвердите преобразования кнопкой Ok.
Обратите внимание на то, что изменилось и изображение для измененной связи 1:М. 1 - обозначает поле в главной таблице, - в подчиненной таблице. При правильном выполнении заданий Вы получите схему данных, приведенную на рис. 10.2
Рис. 10.2. Схема данных после редактирования
Задание 10.7
Выполните удаление связи для поля Код покупателя.
Указание
Выделите связь поля Код Покупателя. Выполните вызов контекстного меню и команду Удалить, Удаление связи будет выполнено после подтверждения действия.
Задание 10.8
Выполните восстановление удаленной связи.
Указание
Для создания связи зафиксируйте курсор мыши на поле Код покупателя в главной таблице, т.е. на той таблице откуда выбираются данные, и удерживая левую кнопку мыши, перетащите указатель на поле Код покупателя в подчиненной таблице, т.е. в ту куда помещаются данные. В окне связи установите параметры целостности данных и подтвердите создание связи кнопкой Создать.
Задание 10.9
Закройте окно схемы данных с сохранением всех внесенных изменений.
Информация
В процессе разработки структуры базы данных может возникнуть необходимость в ее редактировании. К редактированию структуры таблицы можно отнести: добавление новых полей таблицы, удаление полей таблицы, изменение порядка полей, установку и удаление ключевых полей.
Для внесения изменений в структуру таблицы надо активизировать имя таблицы в окне База данных и выбрать кнопку Конструктор.
Задание 10.10
Откройте конструктор для таблицы Покупатели и удалите из таблицы поле Дата поступления па работу.
Указание
Для выделения поля в режиме конструктора надо установить курсор мыши в крайнюю правую область строки и выполнить одинарный щелчок. Вся строка будет выделена для редактирования. Команда Правка/Удалить выполнит удаление строки после соответствующего подтверждения. Информация
Для выделения последовательного интервала из нескольких строк надо выделить первое поле диапазона и, удерживая клавишу <Shift> последнее.
Для выделения нескольких не смежных строк надо выделить первую строку, а затем, удерживая клавишу <Ctrl>, все остальные поля диапазона.
Задание 10.11
Выполните вставку поля Количество детей в таблице Продавцы после поля Отчество.
Указание
Выделите поле следующее за полем Отчество и выполните команду Вставка / Строки. Введите имя поля и определите тип данных этого поля. Закройте конструктор таблицы с сохранением изменений. Информация
После создания и проверки структуры базы данных можно приступать к заполнению таблиц данными. Для заполнения таблицы данными надо выделить имя таблицы в окне базы данных и выбрать кнопку Открыть. При заполнении каждой таблицы следует строго соблюдать тип данных каждого поля. Редактирование записи в поле может производиться после нажатия клавиши <F2>.
Задание 10.12
Выполните заполнение полей таблиц Автомобили, Продавцы, Покупатели с клавиатуры. Каждая таблица должна содержать не менее 20 записей.
Задание 10.13
Выполните заполнение таблицы Заказы, используя значения полей подстановок.
Указание
При выборе поля, которое строилось на основе мастера подстановок, появляется знак раскрывающегося списка. Значения должны выбираться из этого списка. В таблицу заказы занесите не менее 20 записей.
Контрольные вопросы
Что называется базой данных?
Какие функции выполняет система управления базами данных?
Какие основные этапы выполняются при создании базы данных?
Назовите основные объекты реляционной базы данных.
Назовите и охарактеризуйте типы данных в системе управлений базами данных Access 97.
В чем заключается проектирование базы данных?
Какие свойства определяются для различных типов данных?
Почему необходимо определять ключевое поле и какими средствами это выполняется?
Опишите работу мастера подстановок и его назначение.
Для чего используется маска ввода? Опишите порядок определения маски ввода.
Как открыть окно для схемы данных.
Можно ли выполнять редактирование свойств для созданных связей?
Как тип связей может устанавливать мастер подстановок?
Почему не желательно редактировать схему данных после заполнения таблиц?
В каком случае устанавливается связь объединение?