Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Базы данных освоение работы в MS Access 2007. Электронное пособие
.pdf
Таблица: Словкат
КАТЕГ
Наименование кат
ДР
Друзья
РД
Родственники
МН
Магазины
СР
Сервис
.
3. Откройте таблицу Словкат и заполните данными.
Внимание: Таблицу Телефоны пока заполнять не нужно. Мы еще
произведем некоторые изменения в ее макете. Перемещение по таблице можно
производить с помощью кнопок переходов (стрелки) в строке состояния или
щелчком мыши на нужной ячейке, или с помощью клавиш (Таб), (Shift + Tab),
стрелок.
4. Между одноименными полями двух таблиц можно установить связь.
Например, между таблицами Словкат и Телефоны установим связь по
полю Катег. Это означает, что при формировании запроса к этой паре таблиц
Access сможет объединить строки таблиц, в которых значения поля Категория
совпадают.
Кроме того, Access позволяет установить связь между таблицами по
разноименным полям. Установление связей между таблицами рассмотрим на
конкретном примере - нашей базе данных.
Выберите команду (Работа с базами данных – Схема данных). На
экране появится диалоговое окно со списком всех таблиц открытой базы
данных. Укажите системе те таблицы, между которыми вы устанавливаете
связи. Выделите таблицу Телефоны и нажмите кнопку ДОБАВИТЬ, затем то же
самое проделайте с таблицей Словкат. Нажмите кнопку ЗАКРЫТЬ. Удерживая
кнопку (CTRL) вы можете выделить или добавить сразу нескольких таблиц. На
экране появится окно <СХЕМА ДАННЫХ>. Это окно содержит все таблицы
базы данных, между которыми устанавливается связи. Для установления связи
между двумя таблицами можно методом «DRAG – AND -DROP» переместить
имя поля с первичным ключом главной таблицы на одноименное поле
подчиненной таблицы.
Переместите «Катег» из таблицы Словкат на «Катег» в таблице Телефоны
и отпустите кнопку мышки. На экране появится диалоговое окно (Связи). В
этом окне установите флажок «Обеспечение целостности данных». Этим вы
Установить связь между таблицами Словкат и Телефоны.
121

выключите механизм поддержки целостности данных в таблицах Словкат и
НОМЕР
ИМЯ АБОНЕНТА
АДРЕСС
КАТЕГОРИЯ
44-08-19
Петров Женя
Садовая 18
Друзья
42-32-09
Дядя Коля
Зеленая 11
Родственники
43-50-08
Химчистка
Колышева 5
Сервис
37-90-31
Эдик
-----------
Магазины
33-78-35
Терехов Анат. Дмит.
Киевская 5
Родственники
Телефоны.
После активизации флажка «Обеспечение целостности данных»
становятся доступными группа полей выбора Тип отношения и два флажка
каскадных операций. В группе Тип отношения надо обязательно выбрать один
из типов связи: «один к одному» или «один ко многим».
Кроме этого, вы можете включить любой переключатель каскадной
модификации – обновления или удаления. Нажмите кнопку СОЗДАТЬ. На
экране вновь появится окно «схема данных» с графическим изображением
установленной связи. Пометки у концов линии связи означают, что одна запись
таблицы Словкат может иметь сколько угодно связанных записей в таблице
Телефоны. Если вы хотите удалить связь, щелкните мышью на линии связи
(выделите ее), а затем нажмите клавишу (DEL). Сохраните связи.
5. Теперь немного изменим макет таблицы Телефоны. В словаре Словкат
содержаться все категории, которые могут быть значениями поля Катег в
таблице Телефоны. Сделаем это поле подстановочным (т.е. создадим столбец
подстановок, из которого допускается выбор значений). Но вместо кодов
категорий будем подставлять наименования категорий (значения поля
наим_категории).
Для этого откройте таблицу Телефоны в режиме конструктора, перейдите
к типу данных поля Катег и из раскрывающегося списка выберите МАСТЕР
ПОДСТАНОВОК.
В появившемся диалоговом окне «Создание подстановки» отметьте, что
столбец подстановок использует значения из таблицы, нажмите кнопку
ДАЛЕЕ. Теперь укажите имя таблицы Словкат, из которой будут подставляться
значения. Потом выберите поле Наим_катег, значения которого будут
подставляться, ширину столбцов, подпись столбца подстановки. Сохраните
макет.
6. Откройте таблицу Телефоны и заполните данными.
Таблица: Телефоны
122

7. Запрос с параметром. В частном случае, проектируя запрос, вы
№
ИМЯ ПОЛЯ
ПРИМЕЧАНИЯ
ТИП ПОЛЯ
1
Номер заказа
Число
2
Код клиента
Число
3
Наименование клиента
Текст
4
Адрес клиента
Текст
5
Код продукта
Число
6
Название продукта
Текст
7
Количество
Кг
Число
8
Дата поставки
ДД.ММ.ГГГГ
Дата
9
Цена
Тыс.руб кг
Число
10
Стоимость
Тыс.руб
Число
можете создать из него своеобразную микропрограмму, которая будет работать
по-разному, в зависимости от вводимого параметра. Идею такого запроса
рассмотрим на следующем примере.
Создайте сначала запрос – выборку для телефонного справочника с двумя
столбцами: Номер телефона и Наименование абонента. Далее составим
«программу», которая выдает на экран не весь список телефонов (он может
быть очень длинным), а только телефоны избранной вами категории (например,
«Магазины»).
Для этого выполните следующие шаги:
1. Откройте запрос в режиме конструктора.
2. В качестве третьего столбца вставьте столбец Катег .
3. «Погасите» флажок выдачи этого столбца на экран, а в поле Условие
отбора (в этом столбце!!) наберите текст приглашения.
Упражнение 2
Магазин
1. Пусть некая фирма занимается торговлей кондитерскими изделиями.
Клиентами (покупателями) фирмы являются рестораны, кафе, клубы и т.д. Для
учета и анализа заказов фирма может вести таблицу с именем Заказы и со
следующими полями:
Каждая строка такой таблицы содержит полную информацию о
конкретном заказе, а вся таблица в целом дает возможность не только вести
учет, но и анализировать деятельность фирмы – по объемам продукции,
стоимости, датам и т.п.
123

2. Таблицу Заказы мы спроектировали плохо. Например, мы не включили
в нее поле Адрес клиента, значение которого зависит от значения кода клиента,
но не зависит от ключа нашей таблицы – номера заказа. Может произойти
потеря информации: если из таблицы удалить заказ с каким - то номером, будут
утрачены сведения об адресе клиента. Поэтому следует удалить поля
Наименование клиента и Адрес клиента из таблицы Заказы и включить в
классификатор (словарь) Клиенты, имеющий три поля – код, наименование и
адрес клиента.
Внимание: главное не исключить из таблицы поля, которые не связаны
непосредственно с первичным ключом таблицы.
3. Продолжив рассмотрение таблицы Заказы, мы обнаружим еще три
лишних поля: Наименование продукта, Цена продукта и Стоимость продукта.
Значения первых двух полей не зависят от номера заказа, но зависят от кода
продукта. Поэтому и место этих полей – в классификаторе Продукты (код,
название, цена). Значение поля Стоимость –это произведение цены на
количество, поэтому его вообще не следует включать в таблицы: система
обязана при необходимости просто вычислять стоимость заказа.
4. Таким образом, после преобразования таблицы Заказы мы получим три
таблицы:
Оперативную таблицу Заказы (номер заказа, код клиента, код продукта,
количество и дата поставки);
Классификатор Клиенты (код клиента, наименование клиента и адрес
клиента);
Классификатор Продукты (код продукта, название продукта и цена).
Создайте макет этих таблиц. Заметьте, что первичным ключом таблицы
ЗАКАЗЫ является номер заказа, та таблицы Клиенты – код клиента, таблицы
Продукты – код продукта.
5. Свяжите таблицы Клиенты, Продукты и Заказы между собой.
Устанавливая связь между таблицами Клиенты и Заказы, переместите «Код
клиента» из таблицы Клиенты на «Код клиента» в таблице Заказы. Точно так
же установите связь между таблицами Продукты и Заказы, переместив «Код
продукта» из таблицы «Продукты» на «Код продукта» в таблице Заказы.
6. Теперь нам нужно заполнить таблицы. Чтобы упростить ввод,
просмотр и модификацию данных в конкретной таблице, вы можете создать для
нее одну или несколько форм.
Форма – это документ, в окне которого отображается, как правило, одна
запись таблицы, причем пользователь имеет возможность по своему
усмотрению разместить поля на форме. По структуре форма похожа на
диалоговое окно. В зависимости от природы поля, вы можете сохранить для
124

него обычное представление (полем ввода, как в таблице), или исключить поле,
или описать группой радиокнопок (если поле имеет несколько допустимых
значений), или флажком (для логических данных), или полем ввода со списком
и т.п.
Вы можете создать форму вручную или воспользоваться услугами
Мастера форм.
Для ввода данных в оперативную таблицу Заказы с помощью Мастера
создайте форму столбец с именем Ввод заказов:
Для этого выполните следующие действия:
Выберите на вкладке Создание – «Формы».
Запустите Мастер форм. Создание – Формы – Другие формы
В диалоговом окне Мастера форм выберите и в качестве источника
данных укажите таблицу Заказы.
В диалоговом окне «Создание форм» укажите поля формы (можно из
разных таблиц).
Выберите внешний вид формы (например, в столбец).
Укажите стиль.
Задайте имя формы ().
Упражнения по базам данных MS ACCESS
• Структура таблиц
• Поля
• Типы данных
• Свойства данных
Создать в своей папке пустую базу данных. Для этого выполнить
следующие действия:
Упражнение 3
Задание 1
1. Запустить программу MS Access
2. Создать новую базу данных ( Файл/создать базу данных)
3. Из раскрывающегося списка Обзор выберите свою папку.
4. В поле имя файла ввести имя базы данных "фамилия_группа_БАЗА
ДАННЫХ", нажать кнопку создать .
5. Выбрать вкладку Создание – Таблица.
6. Открыть таблицу в режиме Конструктора.
125

7. Создать структуру таблицы, для этого надо заполнить столбцы «имя
Имя поля
Тип данных
Фамилия
Текстовый
Имя
Текстовый
Отчество
Текстовый
Дата рождени
Дата/время
Адрес
Текстовый
Телефон
Текстовый
Группа
Числовой
Поле
Свойства
полей
Размер
Формат
поля
Маска
ввода
Подпись
Значение
по
умолчанию
Обязательное
поле
Индекси
рованное поле
Фамилия
30 Фами-
лия
да
Да(совпа
дения
допускаются)
поля» и «тип данных» следующим образом:
8. Завершив ввод структуры таблицы, сохраните ее с именем
«фамилия_группа_база_таблица_анкета», выполнив команду Файл/Сохранить.
В ответ на вопрос "Создать ключевое поле сейчас" нажмите кнопку да.
В вашей таблице появится поле с именем "код". Это поле называется
первичным ключом и однозначно идентифицирует каждую запись в таблице.
Тип данных у этого поля обозначен как "Счетчик". Это означает, что каждый
раз при создании новой записи значение счетчика будет увеличиваться на 1.
В результате у каждой записи формируется свой номер, который и является
первичным ключом.
Поля обладают свойствами. От свойств полей зависит, какие типы
данных можно вносить в поле, а какие нет, а также то, что можно делать с
данными, содержащимися в поле.
Например маска ввода для поля типа "дата" облегчает ввод дат, позволяет
Вам не заботиться о разделителях дня, месяца, года.
Задание 2
1. Определить свойства полей на вкладке "Общие" следующим образом:
126

Имя
12 Имя
да
нет
Отчество
30 Отчество
нет
нет
Дата
рождения
Краткий
формат
даты
Краткий
формат
Дата
рождения
да
нет
Адрес
50 Адрес
да
нет
Телефон
6
нет
нет
Группа
Целое
основной
Группа
Номер
вашей
группы
да
Да
(совпадения
допускаются)
Тип элемента
управления
Поле со списком
Тип источника строк
Таблица/запрос
Источник строк
1. Щелкните мышкой,
2. Нажмите кнопку
В появившемся окне "построителя запросов":
бланка запроса
Ограничиться
списком
Нет
Задание 3
1. Открыть таблицу в режиме таблицы.
2. Заполнить строки.
3. Будьте внимательны при заполнении столбца "дата рождения" -
разделители проставляются автоматически.
4. На предложение системы дать имя созданной таблице ввести имя
«Анкета» СОХРАНИТЬ!!!! (файл. сохранить).
Задание 4
1. На основе созданной таблицы создайте список фамилий студентов
Вашей группы, для этого в режиме конструктора для поля "фамилия" откройте
вкладку "подстановка"и установите следующие свойства для поля "фамилия"
127

5. В результате выполнения Задания 4 в таблице "Анкета" в поле
Имя поля
Тип данных
Группа
Текстовый (щелкните мышкой)
"фамилия" при щелчке мышью должна появиться кнопка, обеспечивающая
выбор из списка. Проверьте это. ФАЙЛ/СОХРАНИТЬ!
Упражнение 4
Использование форм для ввода и редактирования данных
Способы задания форм
Кнопки перемещения по записям
Переход из формы в режим таблицы
Работа со списками
Задание 1
Создать форму для заполнения таблицы «Анкета»
• Откройте окно базы данных
• Перейдите на вкладку «формы»
• Запустите Мастер форм.
• В качестве «источника данных» выберете таблицу «анкета».
Разберитесь с кнопками перемещения по записям
Переход на одну запись вперед Переход на последнюю запись
Переход на одну запись назад Переход на чистую страницу,
где можно ввести новую запись
Переход на первую запись
1. Создайте таблицу для ввода групп, имеющихся на третьем курсе:
Задание 2
Задание 3
создать структуру таблицы, для этого надо заполнить столбцы «имя
поля» и «тип данных» следующим образом:
128

В ответ на вопрос "Создать ключевое поле сейчас" нажмите кнопку
нет.
Таблицу назвать «группы»
Задание 4
Создать форму для заполнения таблицы «группы»
Введите данные в форму «группы»
Задание 5
Обратите внимание на то, что если вы в поле «фамилии» введете новую
фамилию, то она не появится в раскрывающемся списке фамилий. Убедитесь в
этом!!
Задание 6
Создать самозаполняющийся список фамилий, чтобы при вводе новой
фамилии эта фамилия автоматически попадала в список и впоследствии эту
фамилию можно было бы выбрать из списка, а не набирать заново. Для этого
выполните следующие действия:
1. Создайте форму, основанную на таблице «Анкета» с именем «форма
для добавления записей». Эта форма будет использоваться для добавления в
список новых пунктов.
2. Создайте группу макросов. Будьте очень внимательны при
выполнении этого пункта!!
Выбрать «макрос» на вкладке Создание.
Ввести макрокоманду «открытьформу»
Имя формы: «форма для добавления записей»
Режим: Форма
Режим данных: Добавление
Режим окна: Обычное
Закрыть окно и сохранить макрос с именем «Добавление»
Создать следующий макрос:
Ввести макрокоманду «Выполнить команду»
Команда «Сохранить запись (Save Record)»
Ввести макрокоманду «Выделить обьект»
Тип объекта: Форма
Имя объекта: Анкета
129

В окне базы данных: Нет
Ввести макрокоманду «Обновление»
Имя элемента: Фамилия
Закрыть окно и сохранить макрос с именем «Закрытие»
3. Переключитесь в форму «Форма для добавления записей» в режиме
конструктора.
4. Выбрать режим «вид/свойства»
5. Открыть вкладку «События»
6. Добавить макрос «Закрытие» в свойство «Закрытие формы»
7. Закрыть форму
8. Откройте в режиме конструктора форму «Анкета»
9. Щелкните «правой мышкой» по полю «фамилия» выберете пункт
«свойства»
Открыть вкладку «События»
Указать имя макроса «Добавление» в поле ввода свойства «Двойное
нажатие кнопки».
Задание 7
1. Проверьте работу созданных Вами макросов по созданию
самозаполняющегося списка.
Переключитесь в режим формы «Анкета»
Дважды щелкните мышкой по полю «фамилия», введите фамилию
«Иванов»,
Заполните остальные обязательные поля для записи с фамилией
«Иванов»
закройте форму. Вы опять в главной форме «Анкета»
Попробуйте раскрыть список фамилий, щелкнув мышкой по кнопке.
Если Вы аккуратно выполнили Задание 6, то в списке Вы обнаружите фамилию
«Иванов»
2. Закройте форму, сохранив внесенные изменения.
ФАЙЛ/СОХРАНИТЬ!!
Проектирование многотабличных баз данных
1. Мастер таблиц.
Упражнение 5
130
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
