Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
69
Добавлен:
23.11.2017
Размер:
580.12 Кб
Скачать

Лабораторная работа № 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

Соседние файлы в папке БД лабы