Создание формы ведомость успеваемости

ЗАДАНИЕ: Создайте многотабличную форму, для загрузки результатов сдачи экзаменов в таблицу УСПЕВАЕМОСТЬ и их просмотра. При создании формы произведите действия, аналогичные рассмотренным для таблицы ИЗУЧЕНИЕ (форма ПЛАН ЗАНЯТИЙ).

В таблицу Успеваемость должны заноситься номера зачетных книжек студентов и их оценки только по тем занятиям, которые внесены ранее в таблицу ИЗУЧЕНИЕ (например, через форму ПЛАН ЗАНЯТИЙ). Поэтому таблица ИЗУЧЕНИЕ должна явиться источником записей для таблицы УСПЕВАЕМОСТЬ. Кроме того, как видно из схемы данных, таблица ИЗУЧЕНИЕ является родительской таблицей по отношению к таблице УСПЕВАЕМОСТЬ. Это позволяет создать нам многотабличную составную форму, где в качестве главной таблицы будет использована таблица ИЗУЧЕНИЕ, а в качестве подчиненной – таблица УСПЕВАЕМОСТЬ. При этом нам надо использовать из таблицы ИЗУЧЕНИЕ все поля, а из таблицы УСПЕВАЕМОСТЬ всего 2 поля – номер зачетки и оценку. Следует отметить, что если мы ограничимся только этими 2 таблицами, то мы получим очень неудобную для пользователя форму – для многих полей в ней будут выведены одни коды (код предмета, табличный номер преподавателя и т.п.), которые обычный человек запомнить не в состоянии. Поэтому необходимо обеспечить ввод в форму нужных текстовых полей, соответствующих этим кодам. Это позволит значительно облегчить пользование формой. Для этих целей мы будем использовать нужные поля таблиц ПРЕДМЕТ, ПРЕПОДАВАТЕЛЬ и СТУДЕНТ (см. рисунок 4.76).

 

Рис. 4.76. Подсхема для составной формы ВЕДОМОСТЬ УСПЕВАЕМОСТИ

 

Итак, для создания формы примените мастер создания форм и используйте следующие поля таблиц:

· Таблица ИЗУЧЕНИЕ – все поля.

· Таблица УСПЕВАЕМОСТЬ – поля Зачетка и Оценка.

· Таблица ПРЕДМЕТ – поля Название предмета, Часы, Лекции, Практика.

· Таблица ПРЕПОДАВАТЕЛЬ – поля ФИО, Степень, Звание.

· Таблица СТУДЕНТ – поле ФИО.

· Спланируйте размещение реквизитов в макете формы так, чтобы обеспечить удобный ввод данных в таблицу УСПЕВАЕМОСТЬ из документа "Экзаменационная ведомость", а также отображение справочной информации о студенте, предмете и преподавателе, в списке студентов предусмотрите вывод фамилии студента.

· Выполните конструирование экранной формы (один из возможных вариантов приведен на рис. 4.77), через которую будет осуществляться ввод, добавление и изменение записей таблицы ба­зы данных УСПЕВАЕМОСТЬ.

Рис. 4.77. Форма ввода и просмотра данных об успеваемости студентов по теории и практике

 

· Создайте в полученной форме только одно поле со списком – для номера зачетки в подчиненной форме (других полей со списком создавать не надо). Это поле должно создать удобную возможность ввода студентов из списка. При этом необходимо обеспечить, чтобы в списке выводились фамилии студентов только текущей группы (обеспечьте в списке вывод 3 столбцов – Зачетка, ФИО студента, Номер группы). Рекомендации: откройте форму в режиме Конструктора. Щелкните по полю Зачетка правой кнопкой мыши и появившемся контекстном меню выберите пункт Преобразовать > Поле со списком. Теперь нужно обеспечить отбор студентов текущей группы. Для этого для поля Зачетка откройте Свойства и на вкладке Данные найдите и установите курсор в строку Источник строк. Щелкните по многоточию и согласитесь с открытием запроса. В появившемся конструкторе запросов добавьте таблицу Студент и выберите поля Зачетка, ФИО и НГ. В поле НГ щелкните правой кнопкой в строке Условие отбора. В появившемся контекстном меню выберите Построить. Появится окно Построителя выражений. Выберите Forms>Загруженные формы>Ведомость успеваемости. В списке полей выберите НГ и введите в верхнее поле Построителя выражений. Должно появиться выражение [Forms]![ВЕДОМОСТЬ УСПЕВАЕМОСТИ 2]![НГ5]. Щелкните кнопку ОК и это выражение попадет в Условия отбора вашего запроса. Закройте запрос.

· Первый (стандартный, но не лучший) способ обновления подчиненной формы: Теперь в подчиненной форме нужно создать кнопку «Обновить данные формы». Используйте стандартный метод. Этой кнопкой следует пользоваться каждый раз при переходе к новой группе.

· Можно использовать и другой более эффективный способ автоматического обновления подчиненной формы. В режиме Конструктора откройте свойства всей подчиненной формы, щелкнув по квадратику в левом верхнем углу подчиненной формы. Перейдите на вкладку События. В строке Текущая запись выберите Процедуру обработки событий и откройте ее. Введите строку Me.Refresh, в результате процедура будет выглядеть так

Private Sub Form_Current()

Me.Refresh

End Sub

Сохраните и закройте окно процедуры. Опробуйте работу вашей формы.

Загрузите через построенную форму данные в таблицу УСПЕВАЕМОСТЬ. Используйте значения данных, приведенные в Приложении.

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: