logo
УМП Часть 5

Создание сложных форм

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

Сложные формы являются удобным механизмом для работы с подчиненными таблицами. Для создаваемой базы данных Фирма такой подчиненной таблицей является таблица Заказы. Непосредственное заполнение этой таблицы требует, чтобы пользователь помнил номера всех клиентов, коды всех услуг и номера всех исполнителей. Это очень неудобно, так как человек привык работать с фамилиями (а не номерами) и наименованием услуг (а не их кодами). Создание сложных форм позволяет решить эту проблему.

Обычно сложные формы сначала создаются с помощью Мастера создания форм, а затем дорабатываются с помощью Конструктора.

Задание 177. Создайте с помощью Мастера форму для таблицы Заказы, выполнив следующие операции:

  1. На вкладке Создание в группе Формы раскройте список Другие формы и выберите пункт Мастер форм.

  2. В окне мастера Создание форм с помощью списка Таблицы и запросы выберите таблицы Заказы. Из списка Допустимые поля переместите в список Выбранные поля только следующие поля: НомерЗаказа, ДатаПриема, ДатаИсполнения. В последнем диалоговом окне установите переключатель «Изменить макет формы» (это приведет к переключению в режим Конструктора) и щелкните кнопку Готово.

  3. В окне конструктора расширьте форму так, чтобы в ней можно было разместить новые элементы (переместите поле Примечание формы вниз с помощью мыши).

  4. Измените надписи перед полями «НомерЗаказа», «ДатаПриема» и «ДатаИсполнения», установив курсор в надпись двойным щелчком и введя с клавиатуры строки «Номер заказа», «Дата приема» и «Дата исполнения» соответственно. Такое оформление полей больше соответствует стандартному. Обратите внимание на то, что изменять следует текст только в левых прямоугольниках (надписях к полю). Значение самих полей изменять не надо!

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

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

  1. Пользователю будет удобнее работать, если наряду с раскрывающимся списком услуг в форму вставить поле Стоимость. Для включения поля Стоимость в форму заказа выполните следующие операции:

=DLookUp("[Стоимость]";"Услуги";"[Услуги]![КодУслуги] = " & [Forms]![Данные о клиентах]![Заказы]![КодУслуги])

(стоимость выбирается из поля Стоимость таблицы Услуги, причем выбирается стоимость той услуги, код которой будет зафиксирован при оформлении заказа клиентом). Для записи этой формулы использованы конструкции языка программирования Visual Basic for Applications (VBA). С этим языком можно познакомиться на специальных факультативных занятиях.

  1. Разместите на форме поле со списком для выбора исполнителя заказа, выполнив операции:

Рисунок 21. Форма Заказы в режиме конструктора

  1. Для отображения информации о том, оплачен ли заказ, на форме следует разместить Флажок. Для размещения флажка выполните следующие операции:

Рисунок 22. Форма Заказы в режиме просмотра

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

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

Задание 188. Создать реляционную форму путем внедрения формы Заказы в форму Данные о клиентах. Для этого:

  1. Выделите форму Данные о клиентах и откройте ее в режиме Конструктор;

  2. Перетяните значок формы Заказы из левой боковой панели в нижнюю часть формы Данные о клиентах (копия формы Клиенты) на свободное место;

  3. Отформатируйте элементы формы так, чтобы все они размещались на ней, и закройте конструктор.

Полученная форма должна иметь вид, показанный на рис. 23.

Рисунок 23. Форма Данные о клиентах. используемая для приема заказов

Задание 199. Введите с помощью формы Данные о клиентах информацию о заказчиках и «оформите» заказы для них, используя произвольные данные.

Таким образом, формы позволяют последовательно просматривать записи БД, искать нужные записи, удалять записи при необходимости. Для отбора информации по более сложным критериям, анализа и подведения итогов в БД создаются запросы и отчеты.

Вопросы для самоконтроля:

  1. Как в форму вставить текущую дату или формулу?

  2. Как вставить в форму раскрывающийся список и флажок?

3. Как создать реляционную форму из нескольких форм?