Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БАЗЫ ДАННЫХ 2007.doc
Скачиваний:
10
Добавлен:
29.08.2019
Размер:
299.52 Кб
Скачать

Лабораторная работа «Введение в субд ms Access».

Целью этой лабораторной работы является изучение системы управления базами данных MS Access. Предполагается, что обучающиеся знакомы с основными понятиями теории баз данных.

Обратите внимание: в настоящей лабораторной работе описывается MS Access 2007. Если Вы работаете с другой версией (MS Access 2003, например), то некоторые (несущественные) детали будут отличаться.

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

  • Выделение подчеркиванием используется для Заголовков, отражающих Ваши действия в MS Access. Эти действия перенумерованы.

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

  • Замечания (по крайней мере, при первом чтении) можно пропускать. Однако, возможно, там содержатся ответы на Ваши вопросы, возникающие при практической работе с Access.

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

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

0. Запуск приложения Access.

Чтобы запустить Access, воспользуйтесь кнопкой «Пуск» («Start»), выберите в появившемся меню пункт «Программы» («Program») и подпункт «MS Office» («Office»). В открывшемся списке найдите пункт «Microsoft Access» и щелкните по этому элементу списка мышкой.

Когда Access загрузится, можно либо создать новую базу данных, либо открыть уже существующую.

1. Создание базы данных.

Чтобы создать базу данных, нужно выбрать пункт «Новая база данных». В результате справа будет открыто диалоговое окно «Новая база данных». Это диалоговое окно должно напомнить хорошо известное Вам диалоговое окно «Сохранить файл как…». Выберите Ваш каталог и измените данное по умолчанию имя на более содержательное, сохранив при этом расширение файла. Назовите его, например, ФИРМА (в качестве первого упражнения Вам предстоит разработать базу данных, описывающую структуру фирмы).

Нажмите на кнопку «Создать». В результате в окне приложения появится документ с заголовком «ФИРМА: база данных». По умолчанию создана таблица с названием «Таблица1».

2. Создание таблиц.

Фирма. Какие таблицы потребуются для описания фирмы?

Во-первых, это таблица «Сотрудники». В ней будут содержаться данные о сотрудниках: табельный номер, личные данные (фамилия, имя, отчество; почтовый индекс, адрес, домашний телефон; мы ограничимся только ФИО), в каком отделе работает, является ли начальником.

Во-вторых, это таблица «Отделы». В этой таблице можно сохранять данные об отделах: их названиях, их начальниках. В-третьих, в таблице «Должности» будут храниться сведения о должностных окладах.

Наконец, должна быть таблица «Телефоны», в которой указаны данные о номерах телефонах и о том, к какому отделу они относятся.

Мы пойдем «классическим» путем и потому выберем метод создания таблицы в режиме «конструктора».

СУБД предложит сохранить таблицу. Введите название Телефоны.

В открывшемся окне Вы увидите таблицу из трех столбцов: «Имя поля», «Тип данных» и «Описание». Первые два столбца являются обязательными для заполнения.

Столбец «Описание» предназначен для «внутренних» нужд пользователя: в нем Вы можете поместить комментарий, описание поля, объяснение, почему оно нужно и т.п. Теперь можно заполнять строки, чтобы получить макет таблицы.

Замечание 1. О нормализации таблиц говорилось в лекциях.

Создайте макет таблицы «Телефоны», имеющий следующие поля: «номер телефона», тип – текстовый (допустим и числовой; см. Замечание 1) и «номер отдела», тип – числовой. Название поля набирается в столбце «Имя поля», а тип выбирается из выпадающего списка в столбце «Тип данных». Если хотите, добавьте описания.

Таблица: Телефоны

Имя поля

Тип данных

Описание

Телефоны: номер телефона

Текстовый

Ключевое поле

Телефоны: номер отдела

Числовой

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

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

Таблица: Должности

Имя поля

Тип данных

Описание

Должности: разряд

Числовой

Ключевое поле

Должности: наименование

Текстовый

Должности: оклад

Денежный

Теперь таким же образом создайте таблицы «Отделы» и «Сотрудники».

Таблица: Сотрудники

Имя поля

Тип данных

Описание

Сотрудники: табельный номер

Числовой

Ключевое поле

Сотрудники: ФИО

Текстовый

Сотрудники: разряд

Числовой

Сотрудники: номер отдела

Числовой

Таблица: Отделы

Имя поля

Тип данных

Описание

Отделы: номер отдела

Числовой

Ключевое поле

Отделы: наименование

Текстовый

Отделы: начальник

Числовой

Закройте и сохраните созданные таблицы.

Замечание 2. Тип поля «номер телефона» выбран текстовым, чтобы можно было использовать разделители (черточки) при записи номеров. Если просто выбрать числовой тип, придется записывать телефоны в таком виде: 332211. Есть и другая возможность – использовать числовой тип и маску ввода. В нижней части окна макета таблицы можно определить свойства поля (активного на данный момент). На странице «Общие» есть пункт «маска ввода». Активизация этого пункта приведет к появлению в правой (пустой) части списка свойств полей (напротив выделенного пункта) кнопки с многоточием. Нажатие на эту кнопку приводит к вызову Мастера масок ввода, однако для полей числового и денежного типа требуется задавать маску ввода вручную. Справочная система MS Access предоставляет подробное описание масок ввода.

Замечание 3. Если при создании макета таблицы у Вас возникла потребность что-то изменить, исправить, дополнить, это легко сделать. Режим разработки макета таблицы называется режимом конструктора. Двойной щелчок по уже созданной таблице откроет ее для заполнения, а щелчок по кнопке «конструктор» в окне документа базы данных приведет к открытию именно макета таблицы.

Замечание 4. В такой простой базе данных сложно запутаться в названиях полей. Access как раз и предполагает работу с достаточно простыми (класса «настольные») базами данных и приветствует одинаковое наименование в таблицах полей, описывающих одно и то же. Так, в нашем случае поле «номер отдела» будет фигурировать и в таблице «Сотрудники», и в таблице «Телефоны», и в таблице «Отделы». Такой подход позволяет несколько автоматизировать создание базы данных. Вместе с тем, при создании сложных баз данных рекомендуется придерживаться простого правила: имя любого поля таблицы должно включать имя таблицы (полностью или сокращенно – это уже неважно). В этом случае в таблице «Телефоны» должны использоваться, например, следующие имена полей: «телефоны: номер телефона» и «телефоны: номер отдела». Двоеточие используется, чтобы визуально отделить имя поля от имени таблицы (напомним, что точку в именах полей использовать нельзя).

Замечание 5. Конечно, Вы можете воспользоваться меню для сохранения таблиц, но на первых порах «избыточная» информация может Вас запутать. Поэтому (пока Вы начинающий пользователь) следует больше доверять Access.

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

Вопросы:

  1. В чем отличие между таблицей в режиме конструктора и таблицей в режиме заполнения?

  2. Как сделать поле таблицы ключевым?

  3. Что произойдет, если ни одно поле таблицы пользователь не сделал ключевым?

  4. Обязательно ли добавлять описания в макет таблицы?

3. Установка связей между таблицами.

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

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

Замечание 1. Обратите внимание: добавленная в схему данных таблица не исчезает из диалогового окна «Добавить»! Если Вы поместили несколько экземпляров одной и той же таблицы, удалите лишние, чтобы не загромождать схему данных.

Установить связи между таблицами очень легко. Например, чтобы связать таблицы «Отделы» и «Телефоны», достаточно просто перетащить мышкой поле «Отделы: номер отдела» на поле «Телефоны: номер отдела». Когда Вы отпустите клавишу мыши, появится диалоговое окно «Изменение связей», в котором указаны таблицы и поля, между которыми устанавливается связь, а также тип этой связи (один – ко – многим в нашем случае). Лучшим подходом будет использование возможности по обеспечению целостности данных. Отметьте (поставьте галочку) опцию «Обеспечение целостности данных», и две других опции – «Каскадное обновление связанных полей» и «Каскадное удаление связанных записей» также станут доступными. Отметьте первую из этих опций. Вторая опция – каскадное удаление связанных записей – не менее полезна, чем первая, однако использование ее может привести к потере данных, и мы пока не будем ею пользоваться.

После того, как Вы нажмете кнопку «Создать», поля таблиц соединит черная линия, на одном конце которой (касающемся поля «Отделы: номер отдела») будет стоять «1», а на другом – знак бесконечности «». Так обозначается связь «один – ко – многим».

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

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

Вопросы:

  1. Как добавить таблицу в схему данных?

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

4. Заполнение таблиц.

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

Фирма. Итак, давайте пока ограничимся тремя описанными выше отделами: бухгалтерией, производственным отделом и рекламным отделом. Присвоим им номера: 01, 02 и 03 соответственно. Предположим, что в бухгалтерии работает три сотрудника, в рекламном отделе – четверо, а в производственном – пятеро (итого – двенадцать человек), включая начальников этих отделов. Придумайте сами фамилии, имена и отчества сотрудников фирмы, а также их табельные номера и должности (например, начальник отдела, заместитель начальника отдела, бухгалтер, инженер, менеджер по рекламе, стажер). Теперь осталось разобраться с телефонами. Допустим, что в бухгалтерии и производственном отделе установлено по два телефона, а в рекламном отделе – четыре. Таким образом, нужно придумать восемь номеров телефонов.

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

Пример заполненных таблиц:

Таблица: Сотрудники

Сотрудники: табельный номер

Сотрудники: ФИО

Сотрудники: разряд

Сотрудники: номер отдела

1001

Иванов И.И.

6

1

1005

Петров П.П.

5

1

1012

Сидоров С.С.

4

1

2004

Федоров Ф.Ф.

5

2

2006

Владимиров В.В.

6

2

2009

Павлов П.П.

3

2

2013

Николаев Н.Н.

3

2

2019

Алексеев А.А.

1

2

3011

Васильев В.В.

2

3

3015

Александров А.А.

5

3

3021

Романов Р.Р.

6

3

3023

Кириллов К.К.

1

3

Таблица: Отделы

Отделы: номер отдела

Отделы: наименование

Отделы: начальник

1

Бухгалтерия

1001

2

Производственный отдел

2006

3

Рекламный отдел

3021

Таблица: Должности

Должности: разряд

Должности: наименование

Должности: оклад

6

Начальник отдела

5000

5

Заместитель начальника отдела

4000

4

Бухгалтер

3500

3

Инженер

3000

2

Менеджер по рекламе

2500

1

Стажер

1200

Таблица: Телефоны

Телефоны: номер телефона

Телефоны: номер отдела

11-22-33

1

11-95-34

1

11-78-23

2

11-46-08

2

11-23-11

3

11-55-22

3

11-38-96

3

11-79-02

3

Вопросы:

  1. Какие поля в приведенных примерах таблиц можно изменить, не опасаясь за согласованность данных?

  2. По какому принципу сформирован табельный номер сотрудника?

5. Создание форм (часть 1).

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

При создании форм лучше всего сначала воспользоваться услугами Мастера форм, а затем отредактировать сделанную им заготовку. Переключитесь в ленте меню на страницу «Создание». Запустите Мастер форм.

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

Какие поля нужно отображать? Очевидно, что отобразить придется поля «табельный номер» и «ФИО»: эти поля присутствуют только в таблице «Сотрудники». Поля «разряд» и «номер отдела» используются для связи с таблицами «Должности» и «Отделы» соответственно. Поэтому лучше использовать данные, взятые непосредственно из этих таблиц. Мастер форм прекрасно справляется с такой работой, и единственная проблема состоит в том, что созданная им форма не слишком удобна для ввода данных. Вот почему чуть позже нам придется призвать на помощь другого Мастера. А пока переместите поля «табельный номер» и «ФИО» в список выбранных полей и нажмите кнопку «Далее».

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

Новое диалоговое окно позволяет выбрать стиль. Наиболее простое оформление предполагает стиль «стандартный. Выберите тот, который Вам нравится, и вновь нажмите кнопку «Далее».

Это приведет к появлению последнего, четвертого, диалогового окна Мастера форм. В этом окне нужно задать имя формы (по умолчанию оно совпадает с именем таблицы: Сотрудники, и в дальнейшем мы будем так и называть эту форму), а также выбрать вариант дальнейших действий: открыть форму для просмотра и ввода данных или же изменить макет формы.. Вообще говоря, для наших целей следовало бы открыть форму в режиме конструктора, чтобы изменить макет. Однако сейчас подходящий момент посмотреть на результаты (хотя и промежуточные) Вашей работы. Выберите пункт «открыть форму…» и нажмите кнопку «Готово». В результате будет открыто небольшого размера окно, в котором отобразится табельный номер и фамилия первого (по счету в таблице «Сотрудники») сотрудника. С помощью навигационной панели «Запись», расположенной внизу формы, можно перемещаться по записям.

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

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

Сделайте область данных больше, так как на нее позже будут помещены дополнительные элементы.

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

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

Щелкните по компоненту «Поле со списком» мышкой и переместите ее к окну макета формы. Указатель мыши примет форму компонента с плюсом в верхнем левом углу. Теперь щелкните мышкой в области данных формы. Тут же появится первое диалоговое окно Мастера создания полей со списком. В этом окне нужно выбрать ответ на вопрос: «Каким способом поле со списком будет получать значения для выбора?». Предлагаются три варианта ответов:

  • «Объект "поле со списком" будет использовать значения из таблицы или запроса» (выбран по умолчанию),

  • «Будет введен фиксированный набор значений»

  • «Поиск записи в форме на основе значения, которое содержит поле со списком».

Наш случай очевиден: мы хотим использовать значения из таблицы «Отделы». Поэтому следует оставить выбранным первый ответ и нажать на кнопку «Далее».

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

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

Замечание. Вполне вероятно, у Вас возник вопрос: почему мы перемещаем в список выбранных полей не только поле «наименование», но и поле «номер отдела». Это необходимо, чтобы связать эти данные с полем «номер отдела» таблицы «Сотрудники».

Укажите порядок сортировки по Наименованию, жмите «Далее».

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

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

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

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

Вопросы:

  1. Поясните, какие поля и почему были выбраны для отображения в форме,

  2. Как создать поле со списком и для чего оно нужно?

6. Создание форм (часть 2).

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

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

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

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

Второе диалоговое окно предлагает выбрать вид представления данных. В левой части окна Вы увидите список:

  • Отделы

  • Телефоны,

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

Выберите вариант создания подчиненной формы и нажмите кнопку «Далее».

В следующем диалоговом окне предоставляется выбор внешнего вида подчиненной формы – табличного (по умолчанию) или же ленточного. Для наших целей более удобным будет именно табличное представление. Выберите его и нажмите кнопку «Далее».

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

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

Посмотрите, как работает форма «Отделы»: при навигации по записям меняется таблица (подчиненная форма), содержащая номера телефонов. Отметим, что в этой форме можно вводить новые номера телефонов для существующих отделов. Можете попробовать ввести новый телефонный номер для производственного (2-го) отдела.

Следующий шаг состоит в присоединении формы «Отделы» в качестве подчиненной к форме «Сотрудники».

Замечание. Отметим, что Access допускает создание подчиненных форм до 7 уровней вложенности.

Чтобы это сделать, закройте форму «Отделы» и откройте в режиме конструктора форму «Сотрудники».

Если необходимо, увеличьте (просто перемещая мышкой границу) размер области данных. После этого просто перетащите мышкой значок формы «Отделы» на форму «Сотрудники». Теперь форма «Отделы» является подчиненной для формы «Сотрудники». Сохраните свою работу, закрыв форму «Сотрудники» (при этом будет выдан запрос на сохранение внесенных изменений, на который следует дать положительный ответ) и откройте ее вновь, уже обычным образом (в режиме формы). Обратите внимание: возможно при навигации по записям о сотрудниках подчиненная форма «Отделы» всегда отображает в поле номера отдела число «1», и, таким образом, предлагает телефоны бухгалтерии для связи со всеми сотрудниками фирмы. Наша задача сейчас – заставить эти данные изменяться согласованно.

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

Переключитесь на страницу «Данные», на которой доступны следующие настройки:

  • Объект – источник («Отделы»),

  • подчиненные поля (не заполнено),

  • основные поля (не заполнено),

  • доступ («Да»),

  • блокировка («Нет»).

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

Выберите в качестве основного поля поле «Сотрудники: номер отдела», а в качестве подчиненного «Отделы: номер отдела». В поле «Результат» Вы увидите следующее описание: «'Отделы' для каждой записи 'Сотрудники', поле связи 'сотрудники: номер отдела'». Если более подробно, это означает, что в каждый момент времени будут выведены все записи об отделах, номер которых совпадает с номером отдела для текущей записи из таблицы «Сотрудники». Нажмите «OK», закройте диалоговое окно свойств подчиненной формы и переключитесь в обычный режим отображения формы, чтобы увидеть результат. Теперь при навигации по записям номера отделов, в которых работают сотрудники, (и, соответственно, номера телефонов) отображаются в подчиненной форме правильно.

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

Вопросы:

  1. Назовите известные Вам типы связей между таблицами.

  2. Почему возникла необходимость использовать подчиненную форму для отображения телефонов отделов?

7. Ввод данных с помощью форм (часть 1).

Вероятно, Вы уже попробовали ввести какие-нибудь новые данные (или отредактировать старые) с помощью созданной формы. Если нет, то откройте форму «Сотрудники» в обычном режиме отображения и попробуйте добавить нового сотрудника (допустим, стажера Никитина Н.Н. с табельным номером 3078) в рекламный отдел, а также установить в рекламном отделе новый телефон (например, 11-70-98; вероятно, Вы уже обратили внимание, что в рекламном отделе соблюдается правило: каждому сотруднику – по телефону). Чтобы это сделать, перейдите к первой пустой записи в таблице Сотрудники (это можно сделать с помощью кнопки ►*; или же сначала нажать на кнопку ►| –переход к последней из имеющихся записей, а затем – ► – переход к следующей записи). Заполните вручную пустые поля «табельный номер» и «Фамилия И.О.», а отдел и должность нового сотрудника выберите из выпадающих списков. Таблица телефонов в этот момент пуста и добавить новый номер телефона для рекламного отдела пока нельзя. Чтобы это сделать, потребуется перейти на любую другую запись, чтобы сведения о новом сотруднике были внесены в таблицы, а затем вернуться к только что введенной записи (при этом будет контролироваться уникальность табельного номера). Теперь данные в подчиненной форме будут обновлены, и можно дописать в конец выводимого списка новый телефонный номер.

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