
- •Проектирование и реализация реляционной базы данных в среде 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.7.Решение задач средствами макрокоманд
I. Реализация дополнительных средств навигации по данным
Задача 1. Реализовать возможность выбора из списка некоторого значения и отображения на экран информации из таблицы, относящейся к выбранному значению на примере составной формы ГРУППА. Выбрать название группы из списка, расположенного в заголовке и отобразить информацию о выбранной группе в основной части формы.
Создать составную форму на основе таблиц ГРУППА и ФАКУЛЬТЕТ, включив в нее поля name_dep и name_grup.
В заголовок формы включить поле со списком со свойствами:
Имя: NG
Тип источника строк: Таблица/запрос
Источник строк: SELECT [name_grup] FROM [grup];
Число столбцов: 1
Присоединенный столбец: 1
Простой выбор поля из списка не повлияет никаким образом на выведенную на экран запись. При выполнении этого действия выбранное имя группы помещается в поле NG. Далее нужно создать макрос Goto_find, который использует это имя для поиска соответствующей записи:
КЭлементуУправления
Имя элемента: [name_grup]
НайтиЗапись
Образец поиска: =[NG]
Совпадение: Поля целиком
С учетом регистра: Нет
Область поиска: Вниз
С учетом формата поля: Нет
Только в текущем поле: Да
Первое вхождение: Да
КЭлементуУправления
Имя элемента: [NG]
Связать макрос Goto_find с событием После обновления в свойствах поля со списком NG.
Задача 2. Выбрать название группы из списка, расположенного в заголовке составной формы СТУДЕНТ и отобразить информацию о студенте из этой группы в основной части списка. Создать кнопку Следующий студент, по которой проводится поиск следующего совпадения поискового значения вплоть до следующей записи, в которой не встречается выбранное имя.
Создать составную форму на основе таблиц СТУДЕНТ и ГРУППА, включив в нее поля name_stud, num_grup, name_grup.
В заголовок формы включить поле со списком со свойствами:
Имя: NG
Тип источника строк: Таблица/запрос
Источник строк: SELECT grup.num_grup, grup.name_grup FROM grup;
Число столбцов: 2
Ширина столбцов: 0 см; 3 см
Присоединенный столбец: 1
Примечание. Из списка выбирается название группы, а в поле NG сохраняется номер группы (num_grup).
Включить в форму кнопку, установив для нее следующие свойства:
Имя: Find_s
Подпись: Следующая
Создать макрос Goto_find_N, который использует значение NG для поиска соответствующей записи:
КЭлементуУправления
Имя элемента: [num_grup]
НайтиЗапись
Образец поиска: =[NG]
Совпадение: Поля целиком
С учетом регистра: Нет
Область поиска: Вниз
С учетом формата поля: Нет
Только в текущем поле: Да
Первое вхождение: Да
КЭлементуУправления
Имя элемента: [NG]
Далее нужно создать макрос m_Find_s, который использует элемент управления NG для поиска повторных вхождений номеров групп:
КЭлементуУправления
Имя элемента: [num_grup]
НайтиЗапись
Образец поиска: =[NG]
Совпадение: Поля целиком
С учетом регистра: Нет
Область поиска: Вниз
С учетом формата поля: Нет
Только в текущем поле: Да
Первое вхождение: Нет
КЭлементуУправления
Имя элемента: [Find_s]
Связать макрос Goto_find_N с событием После обновления в свойствах поля со списком NG, а макрос m_Find_s с событием Нажатие кнопки в свойствах управляющей кнопки.
II. Реализация последовательных алгоритмов обработки данных
Задача 3. В начале семестра необходимо выполнить следующие действия:
Очистить содержимое рабочих таблиц: date_sem, study_mark, work_plan.
Занести новые данные в таблицу date_sem.
Занести данные в таблицы work_plan, study_mark по схеме:
Z_d_work_plan z_o_work_planz_d_study_mark
Реализовать запросы на удаление всех строк таблиц date_sem, work_plan, study_mark:
Z_del_date_sem, z_del_work_plan, z_del_study_mark
Создать ленточную форму New_term для корректировки таблицы date_sem (рис. 11, а):
в заголовок включить два поля с именем beg, end для занесения Начала и Конца семестра;
в основную часть формы включить поля из таблицы date_sem;
с событием ПослеОбновления поля num_sem (Подпись № семестра) связать макрос m_beg_sem.edit, который в поля date_beg и date_end автоматически вставляет занесенные в переменные beg и end значения;
в основную часть формы включить кнопку Init_date с Подписью Настройка;
с событием НажатиеКнопки связать макрос m_beg_sem.init_d, который инициализирует все данные для новой сессии.
В запросе z_d_work_plan изменить условия отбора записей:
переменную [Начало семестра] - на forms![NEW_TERM].beg
переменную [Конец семестра] - на forms![NEW_TERM].end
Реализовать макрос m_beg_sem:
Имя |
Макрокоманда |
Edit |
Задать значение ([date_beg], forms![NEW_TERM].beg) |
|
Задать значение ([date_end], forms![NEW_TERM].end) |
Init_d |
Открытьзапрос (z_del_work_plan) |
|
Открыть запрос(z_del_study_mark) |
|
Открыть запрос(z_d_work_plan) |
|
Открыть запрос(z_o_work_plan) |
|
Открыть запрос(z_d_study_mark) |
а б
Рис. 11. Образцы форм: а - для задачи 3; б - для задачи 4
III. Реализация интерактивной обработки данных
Задача 4. По итогам сдачи экзаменов группой заносятся оценки в таблицу Study_mark через соответствующую форму. В случае, если студент получил двойку в сессию, необходимо:
включить в таблицу ПЕРЕСДАЧА строку с данными о студенте и сдаваемом им предмете;
сформировать направление на пересдачу одному студенту в виде отчета;
после того, как в направление будет проставлена оценка, занести в таблицу ПЕРЕСДАЧА через соответствующую форму новую оценку, дату сдачи экзамена и фамилию преподавателя;
обновить соответствующую запись в таблице Study_mark.
Предварительно:
Создать форму F_Study_Mark(рис. 11,б):
Создать таблицу Rep_exam(ПЕРЕСДАЧА), которая имеет ту же структуру, что и таблица Study_mark, но в нее еще включено поле для занесения даты выдачи направления (date_w).
Создать форму F_Rep_exam на основе таблицы Rep_exam.
Создать отчет r_order (Направление) по таблице Rep_exam для заданного студента и предмета.
Реализация задачи 3 средствами макросов.
1. Создать макрос Обработка двоек (m_study_mark_2)
Имя |
Условие |
Макрокоманда |
Begin |
|
Открыть форму (F_Rep_exam) |
Edit_mark |
[mark]=2 |
НаЗапись (форма F_Rep_exam, новая) |
|
… |
ЗадатьЗначение (FORMS![ F_Rep_exam]!num_dis, num_dis) |
|
… |
ЗадатьЗначение (FORMS![ F_Rep_exam]!num_stud, num_stud) |
|
… |
ЗадатьЗначение (FORMS![ F_Rep_exam]!num_prep, num_prep) |
|
… |
ЗадатьЗначение (FORMS![ F_Rep_exam]!num_grup, num_grup) |
End |
|
Закрыть (форма, F_Rep_exam) |
2. Связать макросы с соответствующими событиями формы F_Study_Mark:
Форма. Открытие – m_study_mark_2.begin
Форма. Закрытие – m_study_mark_2.end
Поле [mark].ПослеОбновления - m_study_mark_2.edit_mark
Задача для самостоятельного решения. После того, как сформирована таблица Rep_exam, необходимо:
выдать студенту направление на пересдачу (занести дату выдачи направления (date_w) и напечатать его в виде отчета);
занести результаты пересдачи экзамена (занести дату сдачи экзамена, оценку и, возможно, исправить фамилию преподавателя);
если получена положительная оценка, обновить соответствующую запись в таблице Study_mark, иначе - сформировать новую строку в таблице Rep_exam (номер студента, номер группы, номер дисциплины и номер преподавателя).