В этой главе рассмотрены следующие вопросы, связанные с использованием форм при работе с базой данных:
назначение формы; режимы просмотра формы; различные способы создания формы; применение в форме полей различных типов.
Для более удобного отображения информации, содержащейся в базе данных, используются формы. В повседневной жизни мы обычно заполняем формы, например, когда вносим плату за квартиру или телефон.
для ввода новых данных в таблицу, их редактирования и удаления; для выбора данных, их предварительного просмотра и для печати отчета; для открытия других форм или отчетов.
Данные, приведенные в форме, берутся из полей базовой таблицы. Связь между формой и источником данных могут обеспечивать элементы управления, например, поля. Форму можно просматривать в трех режимах:
Конструктор (Design View); Режим таблицы (Datasheet View); Режим формы (Form View).
Ознакомимся с образцом формы, поставляемым с учебной базой Борей. В окне базы данных на вертикально расположенной панели
Объекты (Objects) выделим значок Формы (Forms) (рис. 25.1), в списке форм дважды щелкнем значок Клиенты и просмотрим данные по ним.
Рис. 25.1 Список форм.
Работу с формой облегчает ее красивое оформление. Для перемещения между полями формы используйте клавиши со стрелками или Tab.
Для добавления сведений о новом клиенте нажмите кнопку Новая запись (New Record)
Рис. 25.2
Форма с данными по клиенту
Access позволяет создавать формы, которые отображают данные из нескольких связанных таблиц. Например, каждый тип товара может иметь несколько наименований. Поэтому, данные в таблице «Типы» будут находиться на стороне отношения «один», а в таблице «Товары» — на стороне «многие».
Например, можно создать подчиненную форму для вывода данных из таблиц «Типы» и «Товары». Когда главная форма отображает тип «Напитки», подчиненная форма отображает только те товары, которые входят в заданный тип (рис. 25.3).
Главная форма основана на таблице с первичным ключом, а на связанной с ней другой таблице — подчиненная форма. Подчиненная форма располагается внутри главной. Главная форма может содержать одну или несколько подчиненных форм. Можно создавать подчиненные формы до семи уровней вложенности, т.е. можно подчиненную форму разместить внутри главной формы, а другую подчиненную форму внутри этой подчиненной формы и т.д. Например, можно иметь главную форму, отображающую сведения о клиентах, подчиненную форму, отображающую сведения о заказах, и еще одну подчиненную форму, отображающую сведения о заказанных товарах.-
Рис. 25.3
Главная форма, содержащая подчиненную форму
При использовании формы с подчиненной формой для ввода новых записей текущая запись в главной форме сохраняется при входе в подчиненную форму. Это гарантирует,, что записи из таблицы на стороне «многие» будут иметь связанную запись в таблице на стороне «один». Это также автоматически сохраняет каждую запись, добавляемую в подчиненную форму. Главная форма может отображаться только как простая форма. Подчиненная форма может отображаться в виде таблицы, или в виде простой или ленточной формы.
Предусмотрено несколько вариантов создания подчиненной формы: одновременно с главной или создание сначала подчиненной формы, которую добавляют в существующую, можно создать форму с двумя подчиненными формами.
При создании формы удобно пользоваться диалоговым окном Новая форма (New Form)
(рис. 25.4). Отобразить это окно на экране можно следующими способами:
выделить таблицу или запрос в базе данных и выбрать команду Форма (Form) в меню Вставка (Insert); нажать кнопку Новый объект (New Object) на панели инструментов и в раскрывающемся списке выбрать Форма (Form); в окне базы данных на вертикально расположенной панели Объекты (Objects) выделить значок Формы (Forms) и нажать на панели инструментов кнопку Создать (New).
Рис. 25.4
Выбор метода создания формы
Все таблицы и запросы, доступные в качестве источников данных формы приведены в раскрывающемся списке в нижней части окна.
Автоформа
Автоформа: в столбец (AutoForm: Columnar) для таблицы Заказы показана на рис. 25.5.
Рис. 25.5
Форма с полями, расположенными в столбец
Автоформу можно создать следующими способами:
1. Выбрать команду Автоформа (AutoForm) в меню Вставка (Insert).
2. На панели инструментов в раскрывающемся списке кнопки Новый объект (New Object) выбрать
Автоформа (AutoForm).
3. С помощью мастера форм (Form Wizard).
4. Используя режим конструктора.
В диалоговом окне Новая форма (New Form) (см. рис. 25.4) можно выбрать следующие виды автоформы:
Автоформа: в столбец (AutoForm: Columnar) — форма с полями расположенными в один столбец (рис. 25.5). Автоформа: ленточная (AutoForm: Tabular) — создает форму, в которой поля представлены в верхней части окна, а записи в строках. Автоформа: табличная (AutoForm: Datasheet) — создает форму в виде таблицы Access.
Создание формы с помощью мастера
Использование мастера — один из наиболее простых способов создания формы.
Другой способ отображения окна мастера — в диалоговом окне Новая форма (New Form) (рис. 25.4) выбрать в списке Мастер форм (Form Wizard).
В раскрывающемся списке Таблицы и запросы (Tables/Queries) выберите источник данных (рис. 25.6). Дважды щелкните мышью имена полей, которые вы хотите переместить из списка
Доступные поля (Available Fields) в список Выбранные поля (Selected Fields). Если вы захотите изменить порядок полей в списке
Рис. 25.6
Выбор полей формы в окне мастера
Рис. 25.7
Выбор вида представления данных
Выбранные поля, то нажмите кнопку < и верните выделенное, поле в список Доступные поля.
При создании формы из нескольких таблиц в списке Таблицы и запросы выберите новый источник данных. Если не установлены связи между таблицами, по которым создается форма, то на экране появится .сообщение об ошибке. Отношение между таблицами, например, один 'ко многим, устанавливается в окне
Схема связей (Relationships).
В следующем диалоговом окне мастер предлагает выбрать вид представления данных (рис. 25.7). По умолчанию, в правой области окна вверху показаны поля главной формы, взятые из одной таблицы, а ниже в углубленной области — поля подчиненной формы из другой таблицы. Например, мы можем просматривать сведения о товарах в главной форме, отображая в подчиненной форме их цену. Если вы хотите просматривать данные в связанных формах, то поставьте переключатель в положение
Связанные формы (Linked forms).
Затем положением переключателя выберите внешний вид подчиненных форм: ленточный (Datasheet) или
табличный (Tabular). Нажмите кнопку Далее (Next). На экране появится окно выбора стиля (рис. 25.9). Если вы не хотите
особым образом выделять поля или применять специальные эффекты, то выберите Стандартный (Standard) стиль, который предлагается по умолчанию.
Рис. 25.8
Выбор внешнего вида подчиненной формы
Рис. 25.9
Выбор стиля оформления формы
Рис. 25.10
Задание имен главной и подчиненных форм
В последнем диалоговом окне мастера задаются имена главной и подчиненных форм (рис. 25.10). Многие разработчики используют в именах главной и подчиненной формы префиксы frm и sbf, чтобы сделать более очевидной связь между формами. Если хотите просмотреть справку о работе с формой установите флажок
Вывести справку по работе с формдй (Display Help on working with form) ?
Создание формы в режиме конструктора
Режим конструктора предоставляет наибольшие возможности по созданию и редактированию формы.
Форма может быть разделена на 5 частей: Заголовок формы (Form Header), Верхний колонтитул (Page Header), Область данных (Detail), Нижний колонтитул (Form Footer) и
Примечание формы (Form Header/Footer).
При выводе на печать многостраничной формы заголовок отображается только на первой странице, а примечание внизу последней страницы. Можно не использовать в форме заголовок, колонтитулы и примечание. Эти разделы могут не отображаться при создании формы. Чтобы включить их в форму выберите в меню
Вид (View) команды Заголовок/примечание формы (Form Header/Footer) и Колонтитулы (Page Header/Footer).
Элементы управления формы расположены в области данных. Вы можете перемещать вертикальную линию, показывающую расположение правого поля формы, и горизонтальную линию, отмечающую положение нижнего поля формы.
В окне конструктора формы видны линии сетки, расположенные на расстоянии одного сантиметра друг от друга. По линиям сетки удобно выравнивать столбцы и строки элементов управления. Для расположения по линиям
Рис. 25.11
Создание формы в режиме конструктора
сетки элементов управления выберите в меню Формат (Format) команду Привязать к сетке (Snap to Grid) Команда
По узлам сетки (То Grid) в меню Формат (Format) изменяет размеры элементов управления так, чтобы они соответствовали шагу сетки. Для включения и выключения отображения сетки выберите команду
Сетка (Grid) в меню Вид (View).
В окне создания формы в режиме конструктора видна Панель элементов (Toolbox). Для ее отображения или скрытия можно использовать команду
Панель элементов (Toolbox) в меню Вид (View). На ней размещены кнопки элементов управления. Процесс ввода в форму элементов управления упрощается, если нажата кнопка
Мастер (Control Wizard).
Чтобы ввести кнопку в форму, щелкните ее кнопкой мыши, переместите мышь на место расположения в форме и, удерживая нажатой кнопку мыши, задайте размеры кнопки. Если необходимо ввести одну и ту же кнопку в несколько мест формы, то дважды щелкните кнопку на панели элементов. Для прекращения работы с кнопкой нажмите клавишу Esc.
Чтобы создать подчиненную форму, отображаемую в режиме таблицы, перетащите таблицу или запрос из окна базы данных в форму в режиме конструктора. При этом автоматически запускается мастер создания подчиненных форм.
Рис. 25.12
Выбор стиля оформления формы с использованием команды Автоформат
Стиль выбирается в списке Форма — автоформат (Form Auto Formats). Его особенности можно увидеть в правой части окна. Кнопка Параметры позволяет отобразить в нижней части окна три флажка дополнительных атрибутов. Снимите флажки тех атрибутов, которые вы не хотите применять в форме.
Для создания специального стиля формы нажмите кнопку Настройка (Customize). На экране отобразится окно
Настройка автоформата (Customize AutoFormat) (рис. 25.13). Положения переключателя позволяют создать новый стиль на основе стиля объекта, обновить этот стиль или удалить.
Рис. 25.13
Окно, используемое для создания специального стиля формы
Создание вычисляемого поля
В форму можно вставить поля различных типов. В качестве примера рассмотрим
вставку вычисляемого поля, отображающего результаты вычислений.
Откройте форму в режиме конструктора. Нажмите кнопку Поле (Text Box) на панели элементов, расположенной на рисунке вдоль левой вертикальной границы окна. Указатель мыши в активной области формы примет вид символа поля в верхнем левом углу которого отобразится значок «+». Щелкните мышью место, где должно располагаться название нового поля. Измените в поле надпись «поле» на новое имя/например, Дата/время. Щелкните рядом поле, в котором будут отображаться, результаты расчетов, с надписью Свободный и введите расчетную формулу.
Для отображения текущей даты и времени компьютерных часов введите в вычисляемое поле выражение
=Now.
Нажмите кнопку Вид (View) на панели инструментов для перевода формы в Режим таблицы (Datasheet View) и посмотрите, как отобразится значение Дата/время нового поля. Если вы хотите изменить формат поля Дата/время, то
вернитесь в режим Конструктор (Design). Обратите внимание, Access добавил круглые скобки в вычисляемое поле и там отобразится выражение
=Now().
Рис. 25.14
Создание в форме вычисляемого поля Дата/время
Щелкните правой кнопкой мыши элемент управления и выберите в контекстном меню команду
Свойства (Properties). Откройте вкладку Макет (Format) и выберите в раскрывающемся списке строки
Формат поля (Format) нужный вам формат (рис. 25.15).
Рис. 25.15
Выбор формата поля
Применение списков и полей со списком
Эти элементы управления особенно удобны в тех случаях, когда, например, можно выбрать в списке сложные коды товаров. Рассмотрим использование поля со списком в форме, отображающей данные из таблицы или запроса.
Для создания в форме поля со списком удобно пользоваться мастером. Откройте форму в режиме конструктора и нажмите сначала на панели элементов кнопку
Мастера (Control Wizard) для запуска мастера, затем кнопку Поле со списком (Combo Box). Переместите указатель мыши в форму. В активной зоне формы он будет иметь вид знака «+», рядом с которым виден значок поля со списком. Выделите место, где будет располагаться поле со списком. На экране отобразится диалоговое окно
Создание полей со списком (Combo Box Wizard) (рис. 25.16). Поставьте переключатель в положение
Объект «поле со списком» будет использовать значения из таблицы или запроса (I want the combo box to look up the value in a table or query)
и нажмите кнопку Далее (Next).
В следующем диалоговом окне Выберите таблицу или запрос со значениями, которые будет содержать поле со списком (Which table or query should provide the value for your combo box?)
(рис. 25.17). Выберите таблицу в списке и нажмите кнопку Далее (Next).
В новом окне выберите поля, которые должны быть включены в поле со списком, и нажмите кнопку со значком >, чтобы перенести их в список
Выбранные поля (Selected Fields).
Рис. 25.16
Выбор способа получения значений, отображаемых в поле со списком
В следующем диалоговом окне отображены списки значений для поля со списком. С помощью мыши измените ширину столбцов, если вы считаете, что они должны быть шире или уже предлагаемой величины. Ширина столбца должна позволять полностью отобразить данные, хранящиеся в нем. По умолчанию установлен флажок Скрыть ключевой столбец (Hide Key Column) и этот столбец не отображается. Он используется как источник данных для выбранного вами поля.
Рис. 25.17
Выбор таблицы или запроса, значения которой будет содержать поле со списком
Рис. 25.18
Выбор полей, отображаемых в поле со списком
Рис. 25.19
Задание ширины столбцов со списком и скрытие ключевого поля
В диалоговом окне, показанном на рис. 25.20 положением переключателя выберите действие, которое будет выполняться при выборе значения из списка, Запомнить значение (Remember the value for latter use) или
Сохранить в поле (Store that value in the field).
В последнем диалоговом окне задайте подпись, которую будет содержать поле со списком (рис. 25.21). Нажмите кнопку
Готово (Finish) и поле со списком будет включено в форму.
Рис. 25.20
Выбор действия, которое будет выполняться при выборе значения из списка
Рис. 25.21
Задание подписи, которую будет содержать поле со списком
После окончания работы с мастером нажмите кнопку Вид (View) на панели инструментов и проверьте работу нового поля со списком в режиме формы.
Упражнения
1. Создайте автоформу для одной из таблиц, представленных в учебной базе Борей. Для создания автоформы выберите команду
Автоформа (AutoForm) в меню Вставка (Insert).
2. Создайте форму для просмотра двух взаимосвязанных таблиц базы данных Борей. Упражнение можно выполнить следующим образом:
в окне базы данных на вертикально расположенной панели Объекты (Objects) выделите значок Формы (Forms) и дважды щелкните в списке значок Создание формы с помощью мастера (Create form by using wizard); в раскрывающемся списке Таблицы и запросы (Tables/Queries) выберите сначала один потом другой источник данных (см. рис. 25.6) и следуйте указаниям мастера.
Выводы
1. В форме отображается одна запись, что облегчает работу с таблицами, которые имеют большое количество полей. Использование раскрывающихся списков для выбора значения поля уменьшает вероятность ошибки при заполнении таблицы.
2. Для переключения между режимами просмотра формы можно использовать команды из меню Вид (View)
или щелкнуть стрелку рядом с кнопкой Вид (View) на панели инструментов и выбрать требуемый элемент списка.
3. Для отображения окна мастера создания формы в окне базы данных на вертикально расположенной панели
Объекты (Objects) выделите значок Формы (Forms) и дважды щелкните в списке значок
Создание формы с помощью мастера (Create form by using wizard).
4. Для создания новой формы в окне базы данных и на вертикально расположенной панели
Объекты (Objects) выделите значок Таблицы (Tables) или Запросы (Queries). Щелкните нужный объект базы данных в списке объектов в правой части окна, выберите команду Форма (Form)
в меню Вставка (Insert). В диалоговом окне Новая форма (New Form) выберите в списке
Конструктор (Design View) (рис. 25.4).
5. Вводимое в вычисляемое поле выражение должно начинаться со знака равенства (=).
6. Применение в форме таких элементов управления как списки и поля со списком, позволяет выбирать нужные значения, а не вводить их, что облегчает работу пользователя и уменьшает количество ошибок.