access_2010_в_примерах (833831), страница 7
Текст из файла (страница 7)
6.2. Окно мастера форм при выборе типа включения подчиненнойформыДля получения многозаписевой подчиненной формы выберем в следующемсеансе окна мастера вид формы Ленточный (Tabular) и стиль оформленияСтандартный (Standard). В последнем сеансе окна Создание форм (FormWizard) зададим имя составной формы – ПЛАН ЗАНЯТИЙ, а также имя подчиненной формы – ИЗУЧЕНИЕ.
Выберем также дальнейшие действия мастера– Открыть форму для просмотра и ввода данных (Open the form to view orenter information).По завершению работы мастера выводится форма с данными из таблиц, которые были заданы пользователем в диалоге с мастером. В подчиненной формевыводятся все записи о занятиях для одной группы (рис. 6.3).
При этом записьо занятии содержит, кроме полей из таблицы ИЗУЧЕНИЕ, также поля изглавных по отношению к ней таблиц ПРЕДМЕТ и ПРЕПОДАВАТЕЛЬ. Мастер, проанализировав схему данных, сам формирует подчиненную формуИЗУЧЕНИЕ, и включает поля этих таблиц в качестве расшифровывающих.54Рис. 6.3.
Форма с подчиненной формой, созданная мастером на основечетырех таблицЗаметим, что запись в подчиненной форме имеет очень много полей, причемлишь часть этих полей служит для загрузки данных в подчиненную таблицуИЗУЧЕНИЕ. Другие поля должны отображаться из ранее загруженных таблицПРЕДМЕТ, ПРЕПОДАВАТЕЛЬ. Такое размещение полей неудобно для работы пользователя. Форму целесообразно доработать средствами конструктора.Разработка формы, обеспечивающей удобный интерфейс пользователя для загрузки подчиненной таблицыРассмотренные выше два варианта построения формы для загрузки данных озанятиях недостаточно удобны для работы пользователя.
В первом вариантеданные о каждом занятии были представлены компактно в виде одиночной записи, но не обеспечивался удобный доступ к занятиям каждой группы. Вариант формы с подчиненной таблицей также имел недостатки, поскольку данные, вводимые в таблицу ИЗУЧЕНИЕ, входили в одну длинную запись вместес отображаемыми справочными данными.Выполним разработку формы, более удобной пользователю для просмотра занятий группы и загрузки новых занятий, и защитим в ней поля справочныхданных.Требования к создаваемой форме.
Обеспечим возможность компактногоотображения на экране всей информации об одном занятии и сохраним в тоже время возможность объединения записей о занятиях по группам, как вформе на рис. 6.3. Кроме того, целесообразно в форме в одну группу объединить поля, в которые вводятся значения при загрузке таблицы ИЗУЧЕНИЕ, а вдругую - поля, которые содержат только справочную информацию о предмете55и преподавателе, которая отображается для расшифровки идентификаторовзанятия.В процессе конструирования обеспечим защиту справочных данных в таблицах ГРУППА, ПРЕДМЕТ и ПРЕПОДАВАТЕЛЬ от случайных изменений призагрузке данных о занятиях в таблицу ИЗУЧЕНИЕ. Предусмотрим для удобства пользователя кнопки перехода к просмотру занятий для другой группы икнопку закрытия формы. Для визуальной проверки правильности вводимыхидентификаторов преподавателя и предмета используем поля со списком.В соответствии с перечисленными требованиями для первоначального размещения полей и создания подчиненной формы можно воспользоваться формойПЛАН ЗАНЯТИЙ, полученной мастером (см.
рис. 6.3). Откроем эту форму врежиме конструктора. Для этого в Границе области переходов (область навигации) выберем для редактирования созданную ранее многотабличнуюформу ПЛАН ЗАНЯТИЙ. Если форма была открыта ранее в режиме просмотра или в режиме макета, то для перехода в режим конструктора достаточновыбрать соответствующий тип представления в группе Режимы на вкладкеГлавная.Редактирование основной части формы. В основной части формы разместим и отредактируем поля таблицы ГРУППА так, как это показано на рис. 6.4.Уточним текст подписей полей, шрифт и размеры полей и подписей, введемтекст в заголовок формы. Удалим элемент с подписью подчиненной формы.Удалим разделительные линии между разделами формы: заголовком, областью данных и примечания.
Для этого в свойствах формы на вкладке Макет встроке Разделительные липни выберем Нет. Уберем область выделения записи, проставив в свойствах формы в соответствующей строке "Нет" Создадим две кнопки для перехода к следующей или предыдущей группе, а такжекнопку для закрытия формы.Рис. 6.4. Основная часть многотабличной формы после редактирования в режиме конструктораОграничение доступа к полям таблицы-источника основной части формы. Защитим данные записей таблицы ГРУППА от непроизвольных измене56ний при работе с формой, т.к. они должны использоваться только для отображения.
Это все поля основной части формы. Для защиты поля выделим рамкуполя и с помощью контекстно-зависимого меню вызовем свойства поля. В окне свойств на вкладке Данные в строке Блокировка выберем Да. После установки этого свойства поле доступно только для чтения.Сохраним форму под новым именем –«ПЛАН ЗАНЯТИЙ В ГРУППЕ», используя команду Сохранить как.Редактирование подчиненной формы ИЗУЧЕНИЕ.Ранее мастером было получена подчиненная ленточная форма, которая в режиме конструктора показана на рис. 6.5.Рис. 6.5. Подчиненная форма ИЗУЧЕНИЕ в режиме конструктораДля изменения вида подчиненной формы вызовем ее свойства.
На вкладкеМакет в окне Окно свойств (прав.кнопка мыши - пункт «свойства формы»)(рис. 6.6) заменим в строке Режим по умолчанию значение Ленточная форма на Простая форма. Это позволит отображать в подчиненной форме однузапись о занятии. Вид формы в конструкторе останется прежним.Рис. 6.6. Отображение списка режимов по умолчанию в окне свойствподчиненной формы57В подчиненной форме разместим поля так, как это показано на рис.
6.7. Послеперемещения всех подписей полей из заголовка в область данных можно сократить его размер до нуля перемещением границы заголовка и области данных. Поля таблицы ИЗУЧЕНИЕ, в которой надо вводить данные из документа«План занятий», разместим в верхней части области данных. В нижней частиобласти данных разместим поля, в которые будут автоматически выводитьсясправочные данные из таблиц ПРЕДМЕТ и ПРЕПОДАВАТЕЛЬ для расшифровки вводимых идентификаторов занятия. Эти поля служат только для отображения сведений о предмете и преподавателе. Для создания рамок используем кнопку панели элементов управления Прямоугольник .Рис. 6.7. Подчиненная форма ИЗУЧЕНИЕ в режиме конструктора формпосле редактированияУточним текст подписей полей, шрифт и размеры полей и подписей.
Выполним относительное выравнивание надписей и полей с помощью командыГлавная|Форматирование текста|Выровнять.В область примечаний формы введем инструкцию пользователю, требующуюобязательного ввода данных в поля, идентифицирующие занятие: код предмета — КП, номер преподавателя — ТАБН и вид занятия — ВИДЗ. Без этого неможет быть создана запись в таблице ИЗУЧЕНИЕ.58Защита справочных данных от изменений. Защитим поля НП, ЧАСЫ,ЛЕК, таблицы ПРЕДМЕТ и поля ФИО, СТ, 3В таблицы ПРЕПОДАВАТЕЛЬот случайных изменений при работе с формой. Для зашиты поля выделимрамку поля и с помощью контекстно-зависимого меню вызовем свойства поля. В окне свойств на вкладке Данные в строке Блокировка выберем Да. После установки этого свойства поле доступно только для чтения.Для визуального контроля правильности ввода идентификаторов занятия: КПи ТАБН можно использовать Поле со списком.
Процесс создания такого полярассматривается ниже.Создание полей со спискомПри вводе идентификационных данных через форму в Access имеется возможность получить справочную информацию из ранее загруженных таблиц,что позволяет выбрать уже имеющиеся значения в базе и тем самым повыситьдостоверность вводимой информации.
Отображение данных из справочныхтаблиц при вводе идентификатора свидетельствует о наличии в базе данныхглавных записей для загружаемой подчиненной записи, что необходимо дляуспешного завершения ввода при установленном параметре целостности всхеме данных.Поле со списком объединяет поле формы, в которое нужно ввести данные, исписок. Список содержит записи из связанной главной таблицы. В спискеможно выбрать из соответствующего поля нужное значение и ввести его в поле формы (см., пример, на рис. 6.8).Рис. 6.8. Отображение списка59Создание поля со списком с помощью мастераСоздадим поле со списком для ввода значений кода предмета – КП в таб- лицуИЗУЧЕНИЕ.
Это позволит просматривать и вводить значения, кото- рые ужеимеются в главной таблице ПРЕДМЕТ, а также проверять соответ-ствие кодаи наименования предмета, имеющихся в документе-источнике загрузки «Планзанятий».Выберем кнопку Поле со списком в группе Элементы управления навкладке Конструктор, установим курсор мыши в нужное место, нажмемкнопку мыши и, не отпуская ее, вы-чертим рамку элемента. После отпусканиякнопки мыши запустится мастер и откроет диалоговое окно Создание полейсо списком. В этом окне определим способ, которым список поля получаетсвои значения.