Экранные формы позволяют получить доступ к данным в более удобном виде, чем обычная таблица. Формы создаются на закладке "Формы" с помощью конструктора или мастера форм. Конструктор позволяет в ручном режиме перенести на форму нужные поля из конкретной таблицы, а мастер делает эту работу в полуавтоматическом режиме. Мы воспользуемся мастером.
После запуска мастера создания форм появится окно, представленное на рис. 10. Из списка таблиц (поле "Таблицы и запросы") выберем таблицу Depart (Отделы). После этого в левом нижнем окошке появится список полей выбранной таблицы. Эти поля можно перенести в правое окошко ("Выбранные поля") с помощью кнопок '>' (по одному) или '>>' (все сразу). Затем нужно нажать кнопку "Далее >".
Рис. 10. Создание формы с помощью мастера
На следующем окне можно выбрать внешний вид формы (например, в один столбец), и снова нажать кнопку "Далее >". На третьем окне выберем стиль (стандартный), а на четвертом укажем имя формы (Отделы). После этого форма будет создана (рис. 11). Переходить от одной записи к другой можно с помощью кнопок перехода, расположенных в нижней части формы.
Рис. 11. Форма "Отделы"
Аналогично с помощью мастера форм создадим форму "Сотрудники", только выберем для неё табличную форму представления (укажем внешний вид формы – табличный). Фрагмент полученной формы – на рис. 12.
Рис. 12. Форма "Сотрудники" (фрагмент)
Теперь расположим форму "Сотрудники" на форме "Отделы" (рис. 13). Войдём в форму "Отделы" в режиме конструктора (пиктограмма ). Увеличим размер формы (просто "растаскивая" курсором "мыши" границы формы при нажатой левой клавише). На панели инструментов выберем пиктограмму "Подчинённая форма" ( ). Далее подведём курсор "мыши" в то место на форме, где будет расположен левый верхний угол подчинённой формы. Нажмём левую клавишу "мыши" и, не отпуская клавишу, переместим курсор в то место, где будет расположен правый нижний угол подчинённой формы. После этого отпустим клавишу. Должен запуститься мастер подчинённых форм, в котором надо выбрать в качестве источника данных для подчинённой формы ранее созданную форму "Сотрудники".
Рис. 13. Создание подчиненной формы в режиме конструктора
Примечание. Если мастер подчинённой формы не запускается автоматически, то нужно вызвать для подчинённой формы окно Свойства правой клавишей «мыши», перейти в этом окне на закладку Данные, и выбрать из ниспадающего списка в поле Объект-источник название подчинённой формы. Связанные поля таблиц при этом должны прописаться автоматически (если они имеют одинаковое название в разных таблицах или ранее была создана схема базы данных). Их также можно указать вручную, но в любом случае связанные поля разных таблиц должны иметь одинаковый тип данных.
Таблица "Сотрудники" на схеме базы данных была связана с таблицей "Отделы" через поле depno (Номер отдела). Эта связь сохранится и для созданных форм. Таким образом, в подчинённой форме будут выводиться данные о сотрудниках того отдела, который выведен в основной форме. Например, на рис. 14 в основной форме – данные об отделе "Администрация", а в подчинённой форме – данные о сотрудниках администрации.
Рис. 14. Форма "Отделы" и подчинённая форма "Сотрудники"
Далее с помощью мастера создадим форму "Участие" на основе таблицы Job, выбрав для неё табличную форму представления (т.е. указав внешний вид формы "табличный"). После создания этой формы войдём в неё в режиме конструктора, чтобы изменить представление полей pid (Проект) и id (Сотрудник). Дело в том, что в этих полях хранятся идентификаторы проекта и сотрудника – номера, которые являются малоинформативными. Надо сделать так, чтобы вместо номера проекта выводился шифр проекта, а вместо номера сотрудника – его ФИО. Для этого следует навести курсор "мыши" на поле pid (Проект) и нажать правую клавишу. Появится ниспадающий список, из которого надо выбрать пункт "Преобразовать элемент в…" –> "Поле со списком" (рис. 15).
Рис. 15. Создание полей со списком
Затем также по правой клавише "мыши" из ниспадающего списка выбрать пункт "Свойства", а в открывшемся окне – закладку "Данные" (рис. 16.) На этой закладке в поле "Источник строк" нужно записать строку:
SELECT Project.agreement, Project.Pid FROM Project;
Эту строку можно сформировать в конструкторе запросов. Для этого надо выбрать справа от поля "Источник строк" пиктограмму с тремя точками (…), добавить на окно конструктора запросов таблицу Project, а из неё выбрать – 2 поля: agreement и pid. Первое поле будет отражать суть проекта (его шифр), а второе – поле связи. При этом значение "Присоединённый столбец" должно быть равно 2. (Более подробно работа с конструктором запросов описана в лабораторной работе №4).
Рис. 16. Указание источника строк для поля со списком на закладке "Свойства"
Затем аналогично нужно изменить поле Id (Сотрудник) на поле со списком и присоединить к нему таблицу Emp. Значение "Присоединённый столбец" на закладке "Свойства" –> "Данные" должно быть также равно 2, а значение поля "Источник строк" при этом будет таким:
SELECT Emp.ename, Emp.id FROM Emp;
После этого необходимо сохранить сделанные изменения (пиктограмма ) и вернуться в обычный режим (пиктограмма ).
Полученная в итоге форма "Участие" приведена на рис. 17.
Рис. 17. Форма "Участие" (фрагмент)
Далее нужно войти в форму "Сотрудники" в режиме конструктора и добавить на неё в качестве подчинённой форму "Участие", связав их по полю id (Сотрудник). Теперь можно из формы "Сотрудники" (а также из формы "Отделы") получать информацию о том, в каких проектах участвует сотрудник. Для этого надо подвести курсор "мыши" к значку '+', который появится слева от записи на форме "Сотрудники", и нажать левую клавишу "мыши" (рис. 18).
Рис. 18. Форма "Отделы" с двумя подчинёнными формами
Задание для самостоятельной работы:создать форму "Проекты" для таблицы Project и разместить на ней подчинённую форму "Участие", связав их по полю "Проект" (pid). С помощью этой формы (рис. 19) пользователь получит возможность просматривать списки участников каждого проекта.
Рис. 19. Форма "Проекты" с подчинённой формой "Участники"
Форму можно редактировать вручную. Для этого надо войти в неё в режиме конструктора. Изменять местоположение и значение параметров элементов формы можно с помощью "мыши" или путём изменения свойств элемента на закладке "Свойства". Для вызова этой закладки надо навести курсор "мыши" на элемент формы и нажать правую клавишу "мыши".