5 семестр - ИПОВС / БД лабы / БДлаб4
.pdfЛабораторная работа № 4
Создание и применение форм
Цель работы: ознакомиться с основными способами создания форм и по-
лучить практические навыки по их построению и применению.
Продолжительность работы - 4 ч.
Теоретические сведения
Форма, или экранная форма, - это специальное окно на экране, используе-
мое для разных целей, например, для ввода данных в таблицу и просмотра запи-
сей. Формы позволяют корректировать данные, добавлять и удалять записи, мо-
гут обеспечивать работу одновременно с несколькими взаимосвязанными табли-
цами.
Форма содержит поля ввода-вывода данных, надписи, списки, переключа-
тели, кнопки, линии и другие элементы, называемые элементами управления и предназначенные для отображения и оформления информации и обеспечения взаимодействия с пользователем.
Форма, отображающая какие-либо данные из таблиц базы данных, называ-
ется присоединенной (к таблицам или запросам). Неприсоединенная форма со-
держит элементы управления, предназначенные исключительно для информиро-
вания пользователя или управления активизацией других форм. Примерами не-
присоединенных форм являются заставка и главная кнопочная форма в учебной базе данных “Торговая компания”.
По числу используемых таблиц различают однотабличные и многотаб-
личные формы. В последнем случае форма может быть основана на запросе, вы-
бирающем данные из нескольких таблиц, включать в себя подчиненную форму или активизировать связанную с ней форму.
По характеру соподчинения многотабличные формы делятся на простые,
иерархические и синхронизированные. Простая многотабличная форма хотя и содержит данные из разных таблиц, но не имеет в своей структуре соподчинен-
ных частей. Такие формы получаются, например, когда источником данных для них является многотабличный запрос. Иерархическая форма состоит из области,
в которую выводятся данные из текущей записи главной таблицы, и области, по-
стоянно отображающей соответствующие записи подчиненной таблицы. В эту
вторую область встраивается подчиненная форма, присоединенная к подчинен-
ной таблице. В синхронизированных формах записи из подчиненной таблицы выводятся в отдельной, связанной, форме, которая активизируется по мере необ-
ходимости пользователем при нажатии специально предусмотренной кнопки,
размещенной в форме, отображающей текущую запись главной таблицы.
В Access для создания формы предусмотрено несколько способов:
1)использование инструмента “Форма”;
2)создание разделенной формы;
3)применение режима макета и режима конструктора;
4)использование Мастера форм.
Для сохранения созданной формы следует на панели быстрого доступа на-
жать кнопку “Сохранить” и в появившемся окне задать имя сохраняемой формы.
Вид окна формы зависит от режима, выбранного с помощью соответст-
вующей кнопки в нижней правой части окна базы данных. В режиме формы окно используется для работы с базой данных. В режиме таблицы для однотабличных форм в окне отображается содержимое источника данных в табличном виде. В
режиме конструктора в окне отображается расположение элементов управления и можно изменять внешний вид и свойства формы и элементов управления. В
режиме макета можно вносить изменения в структуру формы при одновремен-
ном отображении данных.
Создание формы с использованием инструмента “Форма”
При помощи этого инструмента все поля указанного источника данных
(таблицы или запроса) размещаются в форме, которую можно сразу начать ис-
пользовать или при необходимости изменить в режимах макета или конструкто-
ра. Например, для таблицы “Студент” форма создается так:
1)указать таблицу в области переходов окна базы данных;
2)выбрать на вкладке “Создание” команду “Форма”.
В результате форма будет создана и показана в режиме макета (рис. 1). В
форме отображаются имена и содержимое полей текущей записи в элементах управления “Надпись” и “Поле”, а перемещение по записям осуществляется с помощью навигационной панели, находящейся в нижней части формы. Пользо-
2
ватель может изменять значения полей текущей записи или вводить их для новой записи.
Рис. 1. Форма, отображаемая в режиме макета
Поскольку таблица “Студент” подчинена главной таблице “Группа”, то в поле “КодГруппы”, которое в таблице определено как поле подстановки, будут вводиться только те коды групп, которые хранятся в таблице “Группа”. Чтобы обеспечить эту возможность, для ввода кода группы вместо элемента управления
“Поле” в форму автоматически включен элемент управления “Поле со списком”,
который позволяет выбирать значение внешнего ключа из списка значений пер-
вичного ключа главной таблицы.
Если указанный источник данных (например, таблица “Группа”) связан с одной подчиненной таблицей (например, таблицей “Студент”), то в созданную форму автоматически добавляется таблица данных, отображающая все записи подчиненной таблицы, относящиеся к текущей записи главной таблицы, т.е. по-
лучается иерархическая форма (рис. 2). Если добавленная таблица данных в форме не нужна, ее можно удалить в режиме конструктора щелчком мыши по ней и нажатием клавиши Delete.
Создание разделенной формы
В разделенной форме данные из одного и того же источника отображают-
ся одновременно в двух частях формы, но в разных режимах: в одной части фор-
мы данные показаны в режиме формы, а в другой части - в режиме таблицы. Вы-
деление полей или перемещение по записям в одной части формы автоматически
3
вызывает выделение тех же полей или перемещение по тем же записям в другой части.
Рис. 2. Иерархическая форма
Используя режим таблицы, можно быстро найти нужную запись, а затем просмотреть или изменить эту запись, отображаемую в режиме формы.
Например, для таблицы “Студент” разделенная форма создается так:
1)указать таблицу в области переходов окна базы данных;
2)выбрать на вкладке “Создание” в коллекции “Формы” команду “Разде-
ленная форма”. Результат показан на рис. 3.
Рис. 3. Разделенная форма
В Access предусмотрена возможность преобразования обычной формы в разделенную форму. Для этого следует:
4
1) открыть существующую форму в режиме конструктора, щелкнув пра-
вой кнопкой мыши по имени формы в области переходов окна базы данных и выбрав команду “Конструктор” в контекстном меню;
2)открыть окно свойств формы, нажав клавишу F4;
3)в раскрывающемся списке панели “Окно свойств” выбрать пункт
“Форма”;
4)в окне свойств на вкладке “Макет” в раскрывающемся списке “Режим по умолчанию” выбрать пункт “Разделенная форма”;
5)переключиться в режим формы, нажав соответствующую кнопку в нижней правой части окна базы данных.
Модификация формы в режиме конструктора
Изменение внешнего вида формы и ее функционирования производится в режимах конструктора или макета (рис. 4). В режиме конструктора на контекст-
ной вкладке “Конструктор” ленты появляются коллекции “Элементы управле-
ния” для включения новых элементов в форму, “Шрифт” для изменения внешне-
го вида текста, размещенного на элементах управления, “Сервис” для добавле-
ния полей из таблиц в форму и отображения окна (страницы) свойств элементов управления.
В режиме конструктора окно формы состоит из трех разделов: заголовка,
примечания и области данных, в которой размещены все включенные в форму элементы управления.
Элемент управления, включенный в форму, можно выделить щелчком мыши или выбором из списка, раскрывающегося в окне свойств. Выделенные элементы имеют характерные маркеры по углам элемента и по серединам его сторон (см. элементы с эмблемой формы с текстом “Студент” на рис. 4). “Ухва-
тившись” курсором мыши за маркер, можно изменить размер или расположение элемента.
Каждый элемент управления, а также сама форма, имеет свойства, кото-
рые определяют их внешний вид и функционирование. Свойства выделенного элемента отображаются после выбора команды “Страница свойств” в коллекции
“Сервис” или при нажатии клавиши F4. Перечень свойств элемента зависит от
5
его типа. В режиме конструктора можно изменить тип элемента управления на более подходящий с помощью команды “Преобразовать элемент в …”, выбирае-
мой из контекстного меню выделенного элемента.
Рис. 4. Вид окна базы данных и окна формы “Студент” в режиме конструктора
В форму можно включить новый элемент управления, выбрав на ленте (см.
рис. 4) его условное обозначение, поясняемое всплывающей подсказкой. Напри-
мер, чтобы включить в форму элемент управления “Кнопка”, нужно выделить этот элемент в коллекции, щелкнув по нему левой кнопкой мыши, переместить указатель мыши в область формы и повторным щелчком мыши поместить кноп-
ку в требуемой позиции.
В коллекции “Элементы управления” справа располагается кнопка “Ис-
пользовать мастера” для активизации мастеров, помогающих задать свойства элементов. Если кнопка “Использовать мастера” отжата, то свойства выделенно-
го в форме элемента следует задавать самостоятельно в окне свойств этого эле-
мента (рис. 5), которое можно активизировать клавишей F4. Например, отобра-
жаемый в элементе управления “Поле” код студента можно сделать недоступ-
ным для изменений, если на вкладке “Данные” для свойства “Доступ” устано-
вить значение “Нет”.
6
Рис. 5. Вид окна свойств элемента управления
Для элемента управления “Кнопка” можно ограничиться заданием свойств “Подпись” (надпись на кнопке) или “Рисунок” (пиктограмма на кнопке),
а также “Нажатие кнопки”, которое определяет действия, выполняемые при щелчке мышью по создаваемой кнопке. После щелчка мышью в строке, соответ-
ствующей свойству “Нажатие кнопки”, появляется кнопка с многоточием, слу-
жащая для активизации окна построителя.
Выбор в окне построителя строки “Макросы” активизирует окно макроса,
в котором следует задать макрокоманды, выполняемые после нажатия пользова-
телем созданной кнопки. Если создаваемая кнопка предназначена для открытия формы “Группа” в режиме формы, то выбирается макрокоманда “ОткрытьФор-
му” и задаются ее аргументы “Имя формы” и “Режим окна” (рис. 6). Сформиро-
ванный с помощью построителя макрос запоминается в базе данных после за-
крытия окна макроса.
Рис. 6. Выбор макрокоманд и их аргументов в окна макроса
Выбор в окне построителя строки “Программы” приводит к активизации системы Microsoft Visual Basic (рис. 7). В окно текстового редактора этой систе-
7
мы должны быть помещены операторы на языке VBA для процедуры, обрабаты-
вающей событие (например, событие Click, связанное с нажатием кнопки). Ме-
сто, начиная с которого следует вводить операторы, в окне текстового редактора отмечено текстовым курсором, находящимся между началом (Sub) и концом
(End Sub) процедуры.
Рис. 7. Окно системы Microsoft Visual Basic
Например, если нажатие кнопки должно приводить к автоматическому созданию таблицы "Факультет" в текущей базе данных, то в процедуру обработ-
ки события Click для этой кнопки можно поместить следующий программный код (в языке VBA апостроф обозначает начало комментария):
'Описать указатели на объекты.
Dim ERwinWorkspace As Workspace Dim ERwinDatabase As Database Dim ERwinTableDef As TableDef Dim ERwinField As Field
Dim ERwinIndex As Index
'Создать сеанс работы пользователя и указать текущую базу данных.
Set ERwinWorkspace = DBEngine.WorkSpaces(0) Set ERwinDatabase = CurrentDB()
'Создать таблицу "Факультет".
Set ERwinTableDef = ERwinDatabase.CreateTableDef("Факультет")
Set ERwinField = ERwinTableDef.CreateField("КодФакультета", DB_LONG)
ERwinField.Attributes = ERwinField.Attributes + DB_AUTOINCRFIELD ERwinTableDef.Fields.Append ERwinField
Set ERwinField = ERwinTableDef.CreateField("НазваниеФакультета", DB_TEXT,
20)
ERwinTableDef.Fields.Append ERwinField
Set ERwinField = ERwinTableDef.CreateField("Декан", DB_TEXT, 20)
ERwinTableDef.Fields.Append ERwinField ERwinDatabase.TableDefs.Append ERwinTableDef
' Создать индекс "PrimaryKey" для первичного ключа.
Set ERwinTableDef = ERwinDatabase.TableDefs("Факультет") Set ERwinIndex = ERwinTableDef.CreateIndex("PrimaryKey")
Set ERwinField = ERwinIndex.CreateField("КодФакультета")
ERwinIndex.Fields.Append ERwinField ERwinIndex.Primary = True
8
ERwinIndex.Clustered = True
ERwinTableDef.Indexes.Append ERwinIndex
'Закрыть базу данных и сеанс.
ERwinDatabase.Close
ERwinWorkspace.Close
'Вывести сообщение.
Response = MsgBox("Таблица создана (появится в области переходов, если закрыть/открыть границу)", vbOKOnly, "Предупреждение")
'...
Примечание: этот программный код почти полностью (за исключением оператора, выводящего сообщение) сгенерирован программой ERwin (см. лабораторную работу № 6), предназначенной для автоматизации проектирования баз данных. В нем использованы предусмотренные в Access объекты доступа к данным (DBEngine – машина базы данных Access; Workspace – сеанс или экземпляр машины базы данных Access; Database – база данных; TableDef – определение таблицы в базе данных; Field – поле таблицы; Index – индекс таблицы), их свойства и методы, а также метод CurrentDB() приложения Access.
Если кнопка “Использовать мастера” в коллекции “Элементы управления” нажата, то после размещения создаваемой кнопки в требуемой позиции активи-
зируется Мастер кнопок и появляется окно “Создание кнопок”, в котором на первом шаге задаются категории действий и сами действия (рис. 8). На после-
дующих шагах выбирается рисунок или надпись на кнопке и задается имя кно-
почного элемента управления.
Сохранение модифицированной формы выполняется после ответа на во-
прос о сохранении, который появляется при закрытии окна формы, или после нажатия кнопки “Сохранить” на панели быстрого доступа.
Рис. 8. Создание кнопки с помощью Мастера кнопок
Создание формы с использованием Мастера форм
Чтобы ускорить и упростить процесс создания формы, можно воспользо-
ваться Мастером форм, а потом внести изменения в полученную форму. Мастер форм позволяет создавать формы автоматически на основе предварительно за-
данных параметров отображения данных. Решение о включении таблиц и полей
9
в однотабличную или многотабличную форму, внешнем виде и стиле формы, а
также ее названии принимает пользователь в процессе работы с Мастером форм.
Для запуска Мастера форм следует на вкладке “Создание” в коллекции
“Формы” выбрать команду “Другие формы” и в появившемся списке указать пункт “Мастер форм”, чтобы открылось окно “Создание форм”, в котором зада-
ются параметры отображения данных.
Как однотабличная, так и многотабличная форма создается с помощью Мастера форм в результате серии шагов в диалоговом окне “Создание форм”
(рис. 9). Для многотабличной формы на первом шаге в окне “Создание форм” выбираются все запросы и таблицы, являющиеся источником данных, и поля из них. При этом таблицы должны быть обязательно предварительно связаны меж-
ду собой в окне “Схема данных”.
Чтобы создать форму, отображающую сведения из таблиц “Группа” и “Студент”, на первом шаге сначала в области “Таблицы и запросы” выбирается главная таблица “Группа” и из нее – поля “ШифрГруппы” и “ЧислоСтудентов”, а
затем подчиненная таблица “Студент” и все поля из нее.
Рис. 9. Создание многотабличной формы (шаг 1)
На втором шаге выбирается вид представления данных в подчиненных или связанных формах (рис. 10). При выборе вида “Подчиненные формы” будет создана иерархическая экранная форма, а при выборе вида “Связанные формы” -
синхронизированная экранная форма.
На следующих шагах выбирается вид для подчиненной формы (рис. 11) и
стиль оформления (рис. 12), а на последнем шаге задаются имена для двух соз-
данных форм (рис. 13).
10