
- •Проектирование и реализация реляционной базы данных в среде Access
- •1.Основные этапы разработки базы данных
- •1.1.Построение информационно-логической структуры базы данных, создание и наполнение таблиц
- •Список исходных таблиц базы данных «Учебный процесс»
- •Информационно-логическая схема базы данных «Учебный процесс»
- •1.2.Реализация запросов на выборку
- •Перечень запросов
- •1.3.Обработка данных средствами запросов
- •1.4.Реализация пользовательского интерфейса в среде Access средствами форм
- •Перечень форм
- •1.5.Разработка отчетов
- •Перечень отчетов
- •1.6.Обработка данных в режиме таблицы и формы
- •1.7.Решение задач средствами макрокоманд
- •1.8.Создание главной формы для автоматизированной системы «Учебный процесс» Функциональные возможности системы
- •Проектирование и реализация системы
- •Программная реализация проекта
- •Задания для самостоятельной работы:
- •2.Выполнение курсовой работы
- •2.1.Структура отчета курсовой работы
- •2.2.Правила оформления курсовой работы
- •2.3.Тематика курсовых работ
- •1. Автоматизированная система «Абитуриент»
- •2. Автоматизированная система «Библиотека»
- •3. Автоматизированная система «Компьютерное тестирование»
- •4. Автоматизированная система «Коммунальные платежи»
- •5. Автоматизированная система «Расчет заработной платы»
- •6. Автоматизированная система «Учет посещений гражданами лечебного учреждения»
- •7. Автоматизированная система «Складской учет …»
- •8. Автоматизированная система «Учета проживания клиентов в гостинице»
- •9. Автоматизированная система «Учет проката видеокассет»
- •10. Информационно-справочная система «Автомобильный рынок»
- •11. Информационно-справочная система по развлекательным предприятиям города
- •12. Автоматизированная система «Бронирования авиабилетов»
- •13. Информационно-справочная система «Городской телефонный справочник»
1.8.Создание главной формы для автоматизированной системы «Учебный процесс» Функциональные возможности системы
Создаваемый проект должен поддерживать следующие функции:
просмотр пользователем перечня групп каждого факультета
просмотр списка групп каждого факультета по курсам;
выбор группы;
просмотр связанной с группой информации (списка групп, оценок, сдаваемых дисциплин и пр.);
настройка данных на следующий семестр;
унифицированный поиск информации;
распечатка ведомостей;
внесение экзаменационных оценок;
выдача направлений на пересдачу.
Проектирование и реализация системы
В заголовке формы F_Stud_Main размещены:
поле со списком nf, с помощью которого выбирается нужный факультет;
поле nk, в которое можно занести номер курса;
подчиненная форма F_p_grup, в которой отображаются группы выбранного факультета и курса.
Рис. 12. Главная форма автоматизированной системы «Учебный процесс»
В области данных формы F_Stud_Main отображается информация, относящаяся к выделенной в заголовке формы группе. На соответствующих закладках размещены:
подчиненная форма F_p_stud, в которой отображается список выбранной группы (рис.12);
подчиненная форма F_p_mark, в которой отображаются оценки студентов за текущую сессию в виде перекрестного запроса;
Рис. 13. Закладка «Оценки» главной формы автоматизированной системы «Учебный процесс»
подчиненная форма F_p_dis, в которой отображается список дисциплин, изучаемых группой в каждом семестре;
Рис. 14. Закладка «Предметы» главной формы
подчиненная форма F_p_itog1, в которой отображается количество отличников, хорошистов, троечников и двоечников за текущую сессию;
Рис. 15. Закладка «Итоги» главной формы
подчиненная форма F_p_work_plan, в которой отображается информация об экзаменах в текущем семестре, через эту форму можно занести оценки студентов, а также напечатать ведомости по каждому предмету;
Рис. 16. Закладка «Экзамены» главной формы
Перед созданием главной формы, необходимо:
1.Реализовать следующие запросы:
запрос Z_mark_grup на создание таблицы Work, в которую отбираются названия предметов и оценки студентов, учащихся в заданной группе:
Рис. 17 Запрос, для отбора фамилий студентов, предметов и оценок
перекрестный запрос z_per_mark на основе таблицы Work:
Рис. 18 Перекрестный запрос
2. Создать все подчиненные формы (некоторые формы уже в базе данных есть, можно их использовать, скорректировав источник записей, как показано в таблице 1).
Определим свойства используемых в подчиненных формах объектов, а также события, связанные с ними (таблица 1):
Таблица 1
Объект |
Свойства объекта |
Подчиненная форма F_p_grup (имя, объект-источник) – задается при вставке в главную форму компонента Подчиненная форма/отчет |
|
Форма F_p_grup |
Источник записей: SELECT grup.name_grup, grup.num_dep, grup.num_grup, kurs.num_kurs, InStr([grup].[name_grup],[kurs].[ind_in_grup]) AS w_r FROM grup, kurs WHERE (((grup.num_dep)=[nf]) AND ((kurs.num_kurs) Like [nk] & "*") AND ((InStr([grup].[name_grup],[kurs].[ind_in_grup]))=2)); использовать запрос z_kurs_stud Режим по умолчанию: Ленточная форма Полосы прокрутки: Отсутствуют Область выделения: Да Кнопки перехода: Нет События: Текущая запись: =Req_Form () Функция выполняет следующие действия:
2. Для формы f_p_mark:
- подставляться источник записей формы: перекрестный запрос z_per_mark. |
Поле name_grup |
Данные: name_grup |
Подчиненная форма F_p_mark (Имя: F_p_mark Объект-источник: Запрос.per_mark) |
|
Подчиненная форма F_p_stud (имя, объект-источник) |
|
Форма F_p_Stud |
Источник записей: SELECT stud.name_stud, grup.name_grup FROM grup INNER JOIN stud ON grup.num_grup = stud.num_grup WHERE (((grup.name_grup)=[Forms]![F_stud_main]![F_p_grup]![name_grup])) ORDER BY stud.name_stud; Режим по умолчанию: Таблица |
Поле name_stud |
Имя: Фамилия И.О. Данные: name_grup |
Подчиненная форма F_p_dis (имя, объект-источник) |
|
Форма F_p_dis |
Источник записей: SELECT grup.name_grup, study_plan.num_sem, study_plan.num_dis FROM grup INNER JOIN study_plan ON grup.num_grup = study_plan.num_grup WHERE (((grup.name_grup)=[Forms]![F_stud_main]![F_p_grup]![name_grup])); Режим по умолчанию: Таблица
|
Окончание таблицы 1
Объект |
Свойства объекта |
||
Поле num_sem |
Имя: Семестр Данные: num_sem |
||
Поле со списком num_dis |
Имя: Предмет Данные: num_dis Тип источника строк: таблица/запрос Источник строк: subject |
Число столбцов: 2 Присоединенный столбец: 2 Ширина столбцов: 4см; 0 см |
|
Подчиненная форма F_p_itog1 (имя, объект-источник) |
|||
Форма F_p_itog1 |
Источник записей: использовать запрос, который вычисляет число отличников, хорошистов, троечников и двоечников в группе (Лаб. раб. №3, запрос 4_2_2), включив в него условие отбора для поля name_grup: [Forms]![F_stud_main]![F_p_grup]![name_grup] Режим по умолчанию: Таблица
|
||
Поле для отображения группы успеваемости |
Имя: Группа успеваемости Данные: имя соответствующего столбца запроса |
||
Поле для вывода количества |
Имя: Количество Данные: имя соответствующего столбца запроса
|
||
Подчиненная форма F_p_work_plan (имя, объект-источник) |
|||
Форма F_p_work_plan |
Источник записей: SELECT work_plan.exam, work_plan.num_grup, work_plan.num_prep, work_plan.num_dis, work_plan.date_exam, grup.name_grup FROM grup INNER JOIN work_plan ON grup.num_grup = work_plan.num_grup WHERE (((grup.name_grup)=[Forms]![F_stud_main]![F_p_grup]![name_grup])); Примечание: перед созданием формы в таблицу Work_plan включить столбец exam логического типа для отметки о печати ведомости. Режим по умолчанию: Ленточная форма |
||
Поле со списком num_prep |
Имя: num_prep Данные: num_prep Тип источника строк: таблица/запрос Источник строк: prep |
Число столбцов: 3 Присоединенный столбец: 3 Ширина столбцов: 4см; 0 см; 0 см |
|
Поле exam |
Имя: exam Данные: exam |
События: После обновления: Запустить отчет «Ведомость» |
|
Поле со списком num_dis |
Имя: num_dis Данные: num_dis Тип источника строк: таблица/запрос Источник строк: subject |
Число столбцов: 2 Присоединенный столбец: 2 Ширина столбцов: 4см; 0 см |
|
Поле со списком num_grup (сделать маленьким, чтобы не было видно в окне формы) |
Имя: num_grup Данные: num_dis Тип источника строк: таблица/запрос Источник строк: grup |
Число столбцов: 3 Присоединенный столбец: 3 Ширина столбцов: 4см; 0 см; 0 см
|
|
Поле Data_exam |
Имя: Data_ exam Данные: Data_exam |
||
Кнопка «Занести оценки» |
Имя: cor_mark Подпись: Занести оценки |
События: Нажатие кнопки: вызов формы F_study_mark(построить мастером) |
Свойства используемых в главной форме объектов, а также события связанные с ними, приведены в таблице 2:
Таблица 2
Форма F_Stud_Main |
||
Форма F_Stud_Main |
Источник записей: dep Подпись: Автоматизированная система «Учебный процесс» Режим по умолчанию: Простая форма Полосы прокрутки: Отсутствуют Область выделения: Нет Кнопки перехода: Нет |
|
Поле со списком nf |
Имя: nf Тип источника строк: таблица/запрос Источник строк: dep Число столбцов: 2 Ширина столбцов 3см;0 см Присоединенный столбец: 2 |
События: После обновления: 1. Обновить информацию в форме. 2. Установить фокус в подчиненную форму F_p_grup. |
Поле nk |
Имя: nk |
После создания главной формы можно реализовать на закладке Экзамены вызов формы F_study_val для занесения оценок студентов выбранной. Ее вызов связывается с событием Нажатие кнопки Cor_mark с помощью МАСТЕРА по следующему алгоритму:
выбрать компонент Кнопка и растянуть его в нужном месте формы;
выбрать нужное действие (Работа с формой, Открыть форму);
выбрать название формы для открытия (F_study_mark);
установить флажок отбора сведений в форму (Открыть форму для отобранных записей);
указать соответствующие поля, которые будут использоваться для отбора (num_grup – num_grup);
задать подпись кнопки (Занести оценки);
задать имя кнопки (Cor_mark).
В форму F_study_val в поле со списком NG необходимо задать значение, вставляемое по умолчанию – номер группы, выбранной в главной форме. Для этого с событием Загрузка формы F_study_val связать следующую процедуру:
Private Sub Form_Load()
Me.ng.DefaultValue = Forms!f_stud_main!f_p_work_plan!num_grup
End Sub
В результате в форме отображается информация о выбранной группе. Для того чтобы через форму F_study_val можно было заносить оценки других групп, необходимо удалить фильтр, автоматически созданный для формы. Это можно сделать, включив в форму кнопку «Все группы». С событием Нажатие кнопки связать макрос Del_filtr:
ЗадатьЗначение Элемент: Forms![F_study_val].[Filtr]
Значение: “”
ЗапускМакроса Имя: Goto_Find_n {поиск заданной группы по номеру}