Разработка базы данных
Разработка базы данных в СУБД Microsoft Access с целью автоматизации учета информации об аспирантах, кандидатах наук и соискателей в Одинцовском гуманитарном институте. Распределение данных по таблицам, определение связей между ними. Запросы базы данных.
Рубрика | Коммуникации, связь, цифровые приборы и радиоэлектроника |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 12.06.2013 |
Размер файла | 2,5 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
СОДЕРЖАНИЕ
ВВЕДЕНИЕ
1. АНАЛИТИЧЕСКАЯ ЧАСТЬ
1.1 СВЕДЕНИЯ О ОБРАЗОВАТЕЛЬНОМ УЧРЕЖДЕНИИ
1.2 АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ
1.3 ЦЕЛИ И ЗАДАЧИ РАЗРАБОТКИ БАЗЫ ДАННЫХ
2. ПРОЕКТНАЯ ЧАСТЬ
2.1 СБОР ИНФОРМАЦИИ
2.2 ОПРЕДЕЛЕНИЕ СУЩНОСТЕЙ И АТРИБУТОВ
2.3 НОРМАЛИЗАЦИЯ СТРУКТУРЫ
2.4 РАСПРЕДЕЛЕНИЕ ДАННЫХ ПО ТАБЛИЦАМ И ПОЛЯМ
2.5 ОПРЕДЕЛЕНИЕ СВЯЗЕЙ МЕЖДУ ТАБЛИЦАМИ
2.6 ЗАПРОСЫ БАЗЫ ДАННЫХ
2.7 АВТОМАТИЗАЦИЯ ВВОДА, СОЗДАНИЕ ФОРМ
2.7.1 СПРАВОЧНЫЕ ФОРМЫ
2.7.2 РАБОЧИЕ ФОРМЫ
ЗАКЛЮЧЕНИЕ
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ
ВВЕДЕНИЕ
Автоматизированная информационная система или база данных представляет собой совокупность самостоятельных материалов (таблицы, запросы, формы, отчеты и т.д.) систематизированных в целое и организованных в интерфейс таким образом, чтобы в удобном и понятном для простого пользователя виде с помощью электронной вычислительной машины осуществлялся поиск, обработка и вывод информации определенной предметной области.
Актуальность темы обусловлена необходимостью создания удобного и эффективного решения для руководства работой аспирантов, кандидатов наук и соискателей в Одинцовском гуманитарном институте и контроле за подготовкой научно-педагогических и научных кадров в сфере послевузовского профессионального образования, а так же автоматического формирования сложной статистической отчетности с множественными условиями по форме № 1-НК.
Целью данной выпускной квалификационной работы является создание базы данных, которая позволит:
- значительно повысить быстродействие получения сведений об аспирантах, кандидатах наук и соискателях;
- увеличить эффективность работников за счет уменьшения рабочего времени при использовании базы данных;
- многократно снизить время, затрачиваемое на составление списков и отчетности с помощью различных прикладных программ.
Для достижения цели, поставленной в выпускной квалификационной работе, было определено несколько следующих задач:
- подробно рассмотреть общие сведения и все характеристики образовательного учреждения и так же входящего в состав отдела аспирантуры;
- провести анализ предметной область работы;
- поставить цели и определить задачи разработки базы данных;
- сбор информации, а так же определение сущностей и атрибутов проектной базы данных;
- рассмотреть и выполнить нормализацию структуры и распределение данных по таблицам и полям;
- определить и создать связи между таблицами;
- построить запросы, организовать автоматизацию ввода, сформировать отчетность и формы;
- на основе полученной структуры базы данных построить интуитивный и удобный интерфейс.
В первой главе данной выпускной квалификационной работы осуществляется рассмотрение:
- характеристик и общих сведений Одинцовского гуманитарного института, а так же всех особенностей деятельности и подробной инфраструктуры;
- обоснования использования технических средств для реализации поставленной цели;
- описания предметной области;
- цели и задач разработки базы данных.
А во второй, проектной главе рассматривается поэтапная разработка базы данных:
- сбор информации;
- определение сущностей и атрибутов;
- нормализация;
- распределение данных;
- определение связей;
- создание запросов;
- автоматизация ввода;
- создание справочных форм;
- создание рабочих форм;
- создание отчетов;
- построение итогового интерфейса пользователя.
1. АНАЛИТИЧЕСКАЯ ЧАСТЬ
1.1 СВЕДЕНИЯ О ОБРАЗОВАТЕЛЬНОМ УЧРЕЖДЕНИИ
база данные аccess
Одинцовский гуманитарный институт был создан в 2004 году по инициативе главы Одинцовского муниципального района Московской области, доктора юридических наук Гладышева Александра Георгиевича.
Становление и развитие института происходило достаточно интенсивно. Первый целевой набор студентов (70 человек) был произведен в 2004 году на факультет государственного и муниципального управления и факультет экономики и менеджмента. В 2005 году открылся юридический факультет, в 2006 году принял первых студентов филологический факультет и колледж, в 2007 году начал свою работу факультет психологии, в 2008 году - гимназия. Сегодня в состав вуза входят 5 факультетов и 18 кафедр. Общий контингент обучающихся составляет свыше трех тысяч человек.
Основной целью деятельности института стала подготовка специалистов со средним и высшим профессиональным образованием для местных организаций, предприятий и органов власти, обусловленная потребностями хозяйствующих субъектов и социальной сферы. Это обеспечило практически 100-процентное трудоустройство.
Первые три выпуска, а это и есть главный результат работы вуза, свидетельствуют об эффективности образовательных технологий. Среди первых выпускников есть успешные предприниматели, заместители руководителей и начальники отделов поселковых администраций, специалисты таких международных компаний, как Ernst&Young, Valio, «Прайсвотерхаузкуперс Аудит» и др.
Сегодня общая площадь образовательного комплекса составляет около 40 тыс. кв.м.
Это два больших здания:
- впечатляющий всех посетителей основной учебный корпус общей площадью 18 тыс. кв.м, включающий десятки учебных аудиторий, специальные кабинеты для деловых игр и тренингов, психологическую и IT-лаборатории, современную библиотеку, компьютеризированный читальный и профессорский залы, лингафонные кабинеты;
- спортивно-оздоровительный комплекс общей площадью 20 тыс.м2, включающий специализированные спортивные и тренажерные залы для занятий боксом, борьбой, фехтованием, художественной гимнастикой, а также теннисные корты, бассейн, медицинский центр, столовую, студенческое кафе, типографию, автостоянку;
Информационный сайт вуза odinuni.ru. предоставляет посетителям возможность совершить виртуальную экскурсию, оценить современный дизайн и техническое обеспечение образовательного учреждения нового типа.
Первой ступенью образования в Одинцовском гуманитарном институте является колледж, который реализует программы среднего профессионального образования по специальностям:
- право и организация социального обеспечения;
- экономика и бухгалтерский учет (по отраслям);
- прикладная информатика (по отраслям);
- банковское дело;
- дошкольное образование;
- преподавание в начальных классах;
- землеустройство;
- туризм;
- физическая культура.
Главной особенностью колледжа является его тесное взаимодействие с потенциальными работодателями - предприятиями и учреждениями, на базе которых организуется практика и стажировка студентов. Гибкая система социального партнерства с государственными и муниципальными органами власти, общественными организациями и работодателями дает свои результаты: выпускники колледжа востребованы в органах социальной защиты населения, в органах Пенсионного фонда России, негосударственных пенсионных фондах, правоохранительных органах Российской Федерации, банках, страховых и аудиторских фирмах, торговых и финансовых компаниях, промышленных корпорациях, в государственных и частных образовательных учреждениях, в учреждениях дополнительного образования, в организациях детского досуга.
Колледж Одинцовского гуманитарного института предоставляет возможность осваивать специальности по очной и очно-заочной (вечерней) формам обучения.
Вторая ступень образования - собственно сам институт, который развивается как пространство возможностей для саморазвития и профессионального роста каждого поступающего студента.
Факультет экономики и менеджмента, образованный в 2004 году, готовит квалифицированных специалистов по следующим направлениям очной, очно-заочной и заочной форм обучения:
- финансы и кредит;
- производственный менеджмент;
- государственное и муниципальное управление;
- прикладная информатика;
- инфокоммуникационные технологии и системы связи.
Филологический факультет готовит студентов по специальностям и направлениям:
- иностранный язык;
- педагогическое образование;
- переводчик в сфере профессиональной коммуникации.
Факультет психологии, реализующий приближенную к мировым стандартам основную образовательную программу высшего профессионального образования по направлению подготовки «Психология» по очной и очно-заочной формам обучения.
А завершающей ступенью высшего образования в Одинцовском гуманитарном институте является аспирантура, которая будет подробно рассмотрена в рамках данной выпускной квалификацонной работы.
Аспирантура Одинцовского гуманитарного института, начавшая свою работу в 2011 году, предполагает совмещение самостоятельной научно-исследовательской работы, академической и преподавательской деятельности аспирантов, что способствует всестороннему углублению знаний, умений и навыков, необходимых для дальнейшего успешного написания кандидатской диссертации и ее последующей защиты. Каждый аспирант, принятый на обучение в Одинцовский гуманитарный институт, имеет квалифицированного научного руководителя, взаимодействие с которым позволяет успешно реализовывать все этапы подготовки, написания и представления научных работ.
Подготовка аспирантов в Одинцовском гуманитарном институте осуществляется по очной и заочной формам обучения на платной основе, а также в форме соискательства.
Срок обучения в очной аспирантуре - 3 года, в заочной аспирантуре - 4 года, в форме соискательства - не более 5 лет.
В настоящее время в Одинцовском гуманитарном институте аспирантура осуществляет деятельность по двум научным специальностям:
08.00.05 - Экономика и управление народным хозяйством (по отраслям и сферам деятельности, в том числе: экономика, организация и управление предприятиями, отраслями, комплексами; менеджмент),
08.00.10 - Финансы, денежное обращение и кредит.
Одинцовский гуманитарный институт предлагает аспирантам достаточно простую схему: учеба в аспирантуре, защита диссертации, получение ученой степени, должности и звания доцента, возможно, административная работа, в отдаленной перспективе - докторантура. С течением времени появляется возможность выбора одного из направлений деятельности: научно-исследовательской, преподавательской, административной - или гармоничное их сочетание.
1.2 АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ
Согласно «Положению о подготовке научно-педагогических и научных кадров», система послевузовского профессионального образования предоставляет гражданам Российской Федерации возможность повышения уровня научной и научно-педагогической квалификации в докторантуре и аспирантуре, созданных в образовательных учреждениях высшего профессионального образования. Докторантура и аспирантура являются основными формами подготовки научно-педагогических и научных кадров.
Соискательство является формой работы над диссертациями специалистов, прикрепленных к высшим учебным заведениям или научным учреждениям, организациям без зачисления в докторантуру, аспирантуру.
Кандидатские экзамены являются составной частью аттестации научных и научно-педагогических кадров. Сдача кандидатских экзаменов обязательна для присуждения ученой степени кандидата наук, а также для соискателей ученой степени доктора наук, не имеющих ученой степени кандидата наук. Кандидатские экзамены устанавливаются по философии, иностранному языку и специальной дисциплине.
Лицам, завершившим подготовку по образовательным программам послевузовского профессионального образования, выдаются документы государственного образца.
Отдел аспирантуры - это отдел, ведущий работу с докторантами, аспирантами и соискателями с момента их поступления в аспирантуру до момента защиты диссертации и выдачи документов государственного образца. При этом отдел располагает точными сведениями об аспирантах, кандидатах наук и соискателях, их научной работе, сдаваемых кандидатских экзаменах, результатах прохождения ежегодных аттестаций, защищаемых диссертациях и собственных сотрудниках.
Цель управления отделом аспирантуры состоит в общем и научно-методическом руководстве работой аспирантов, кандидатов наук и соискателей в высшем учебном заведении и контроле за подготовкой научно-педагогических и научных кадров в сфере послевузовского профессионального образования.
Для достижения этой цели в процессе управления решаются следующие задачи:
- сбор личной информации об аспирантах, кандидатах наук и соискателях, об их перемещениях: планировании поступления, поступлении в аспирантуру, отчислении; условиях обучения;
- сбор информации о сдаче ими кандидатских экзаменов, рефератов, результатах прохождения ежегодных аттестаций, индивидуальных планах, защищаемых диссертациях;
- сбор информации о сотрудниках отдела;
- своевременная обработка и корректировка данных;
- составление статистической отчетности по форме № 1-НК.
1.3 ЦЕЛИ И ЗАДАЧИ РАЗРАБОТКИ БАЗЫ ДАННЫХ
В настоящее время в жизнедеятельности человека все большую роль играет автоматизация учета информации, которая позволяет значительно сэкономить время, избавляет от рутинной работы и механических ошибок. Таким образом, автоматизация ускоряет рабочий процесс и делает его более эффективным.
Ожидается, что автоматизация учета информации отдела аспирантуры позволит повысить быстродействие и снизить трудоемкость получения сведений об аспирантах, кандидатах наук и соискателях за счет использования оперативных запросов к компьютерной базе данных и формирования аналитических отчетов на ее основе.
База данных должна решать следующие задачи:
- учет личной информации об аспирантах, таких как пол, дата рождения, гражданство, образование, контактных данных, необходимых для нормального функционирования отдела, а также получения статистических данных, об обучении в аспирантуре: планировании поступления, поступлении, окончании, отчислении, повторном поступлении; об условиях обучения, таких как, номер и дата договора, форма обучения, специальность и т.д.;
- хранение информации о сдаче ими кандидатских экзаменов, рефератов, результатах прохождения ежегодных аттестаций, индивидуальных планах, защищаемых диссертациях с учетом типа аспирантов;
- учет информации о сотрудниках отдела с учетом кафедр, ученых степеней, званий, должностей и пола;
- правильное распределение данных для исключения ненужного дублирования, хранения лишней информации, рутинного ввода, случайного удаления;
- удобство ввода и редактирования информации для увеличения скорости работы, исключения механических ошибок;
- удобство выборок, поиска и анализа информации;
- автоматическое получение статистической отчетности по форме № 1-НК.
В качестве среды разработки выбрана СУБД Microsoft Access, являющаяся реляционной СУБД, и позволяющая решить все поставленные задачи.
2. ПРОЕКТНАЯ ЧАСТЬ
2.1 СБОР ИНФОРМАЦИИ
База данных должна содержать следующую информацию об аспирантах:
ФИО, пол, дата рождения, возраст, адрес, телефон, является ли сотрудником ВУЗа, место работы, гражданство, номер и серия паспорта, образование, место образования, полученная специальность, год окончания, номер и дата договора на обучение в аспирантуре, даты зачисления и окончания, сумма, является ли обучение оплачиваемым государством, форма обучения, кафедра, специальность, научный руководитель.
В базе данных должна храниться информация об аспирантах, кандидатах наук и сдающих кандидатские экзамены. Также о планирующих поступить в аспирантуру и об отчисленных.
Аспиранты сдают вступительные экзамены, ежегодные аттестации. Для кандидаты наук разрабатываются индивидуальные планы, они также сдают ежегодные аттестации, а также защищают диссертации. Для сдающих кандидатские экзамены также должна быть информация о сдаче экзаменов. А также все аспиранты сдают рефераты.
По экзаменам и аттестациям должна храниться следующая информация: дата сдачи, оценка, предмет, для сдающих кандидатские экзамены еще и дата и номер протокола. По диссертациям - тема, дата защиты. По индивидуальным планам - тема, количество часов и пометка о выполнении.
В базе данных также должна храниться информация о преподавателях: ФИО, кафедра, научная степень, звание, должность, пол, руководителем каких научных работ является.
2.2 ОПРЕДЕЛЕНИЕ СУЩНОСТЕЙ И АТРИБУТОВ
В итоге на основании сбора информации можно выделить следующие сущности: аспиранты, КЭН, СКЭ, экзамены, аттестации, рефераты, диссертации, индивидуальные планы, преподаватели.
Так как аспиранты, КЭН и СКЭ будут содержать одинаковые атрибуты, то нет необходимости разделять их на отдельные таблицы, что увеличивает объем данных, а также является дублированием. В связи с этим их хранение предоставляется одной сущности Аспиранты с указанием типа (аспирант, КЭН или СКЭ).
После чего можем определить список сущностей, который включает их следующий набор:
1) Аспиранты (ФИО, пол, дата рождения, возраст, адрес, телефон, является ли сотрудником ВУЗа, место работы, гражданство, номер и серия паспорта, образование, место образования, полученная специальность, год окончания, номер и дата договора на обучение в аспирантуре, даты зачисления и окончания, сумма, является ли обучение оплачиваемым государством, форма обучения, кафедра, специальность, научный руководитель)
2) Экзамены (дата, предмет, оценка)
3) Аттестации (год, оценка)
4) Рефераты (тема, проверил, оценка, допущен/не допущен)
5) Диссертации (тема, дата защиты)
6) Индивидуальные планы (тема, кол-о часов, выполнен/не выполнен)
7) Преподаватели (ФИО, кафедра, научная степень, звание, должность, пол, руководителем каких научных работ является)
2.3 НОРМАЛИЗАЦИЯ СТРУКТУРЫ
Нормальная форма - совокупность требований, которым должно удовлетворять отношение в реляционной модели данных, чтобы избежать избыточности, которая может привести к логически ошибочным результатам выборки или изменения данных.
То есть, это правила, которые позволяют сделать структуру базы данных эффективной и избежать всевозможных трудностей в работе с ней в дальнейшем.
Процесс преобразования отношений базы к виду, отвечающему нормальным формам, называется нормализацией.
Можно сделать вывод, что это процесс усовершенствования структуры в соответствии с правилами нормализации - устранение избыточности и несогласованности данных, что сделает структуру баз данных более эффективной, надежной.
Всего существует шесть нормальных форм, то есть целых шесть стадий совершенствования, однако на практике разработчики обычно используют только первые три формы.
Например, первая нормальная форма предполагает следующие особенности (1НФ):
- все строки различны;
- все элементы внутри атомарны (неделимы), т.е. они не списки.
Рассматривая полученные на данный момент сущности, видим, что сущность Преподаватели не находится в первой нормальной форме, так как содержит атрибут «руководителем каких научных работ является».
Пример денормализации рассмотрим в таблице (см. таблицу 1).
Таблица 1. Пример денормализации
ФИО преподавателя |
Руководитель научных работ |
|
Волгин Олег Степанович |
Диссертация1, диссертация 2 |
|
Сверчкова Виктория Борисовна |
Диссертация3, диссертация4, диссертация5 |
Устранить данную денормализацию можно путем введения поля Руководитель в сущность Диссертации. Таким образом сущность Диссертации содержит атрибуты (тема, дата защиты, научный руководитель), затем уберем атрибут «руководителем каких научных работ является» из сущности Преподаватель.
Все остальные сущности находятся в первой нормальной форме.
Вторая нормальная форма предусматривает следующие характеристики (1НФ):
- отношение находится в первой нормальной форме;
- каждый не ключевой атрибут полностью функционально зависит от первичного ключа.
Чаще всего эта проблема возникает, когда первичный ключ составной, и какой-то не ключевой элемент функционально зависит лишь от его части. В данном случае все не ключевые элементы функционально полно зависят от первичных ключей, если сделать таковыми уникальный порядковый номер. В связи с чем можно сделать вывод, что все сущности базы данных находятся во второй нормальной форме.
А третья нормальная форма располагает следующими характерными особенностями (3НФ):
- отношение находится во второй нормальной форме;
- не ключевые атрибуты не зависят между собой.
Рассмотрим сущность Аспиранты: например, атрибуты форма обучения, специальность зависят от ФИО аспиранта, но также зависит от даты поступления и даты окончания, т.к. один и тот же человек может поступать в аспирантуру несколько раз. Т.е. сущность Аспиранты не находится в третьей нормальной форме. Решается разбиением на две сущности: Личные данные аспирантов (ФИО, дата рождения, пол и т.д.) и Данные об обучении аспирантов (назовем ее Аспиранты) - дата поступления, дата окончания, форма обучения, специальность, тип и т.д., связанную с Личными данными с помощью внешнего ключа.
Путем приведения к нормальным формам структуры разрабатываемой базы данных получаем следующие сущности и их атрибуты:
- личные данные аспирантов (ФИО, пол, дата рождения, возраст, адрес, телефон, является ли сотрудником ВУЗа, место работы, гражданство, номер и серия паспорта, образование, место образования, полученная специальность, год окончания);
- аспиранты (Тип, Номер и дата договора на обучение в аспирантуре, даты зачисления и окончания, сумма, является ли обучение оплачиваемым государством, форма обучения, кафедра, специальность, научный руководитель);
- экзамены (дата, предмет, оценка);
- аттестации (год, оценка);
- рефераты (тема, проверил, оценка, допущен/не допущен);
- диссертации (тема, дата защиты, руководитель);
- индивидуальные планы (тема, кол-о часов, выполнен/не выполнен);
- преподаватели (ФИО, кафедра, научная степень, звание, должность, пол).
Соответственно можно сделать вывод, что каждой группе данных соответствует отдельная сущность.
На данный момент является перспективой на будущее и соответственно не учтено в данной базе данных следующее:
- возможное отчисление аспирантов с указанием номера и даты протокола об отчислении, а так же планируемое поступление в аспирантуру.
2.4 РАСПРЕДЕЛЕНИЕ ДАННЫХ ПО ТАБЛИЦАМ И ПОЛЯМ
Исходя из логики баз данных, каждой сущности будет соответствовать своя таблица, а каждому атрибуту - поле таблицы.
Проанализируем данные в сформированных таблицах:
- личные данные аспирантов (ФИО, пол, дата рождения, возраст, адрес, телефон, является ли сотрудником ВУЗа, место работы, гражданство, номер и серия паспорта, образование, место образования, полученная специальность, год окончания).
Целесообразнее разбивать информацию на минимальные логические компоненты для удобства их дальнейшего извлечения, в связи с чем ФИО разделим на три составляющие: фамилия, имя, отчество.
Избыточным в данной таблице является возраст аспиранта, так как его можно вычислить по дате рождения.
Вычисляемые поля не нужно хранить в таблицах, их всегда можно получить в запросах, формах и отчетах, а в таблицах данные информация избыточна и тем более может быть устаревшей.
Простой и надежный способ определения первичного ключа таблицы - введение поля-счетчика, который автоматически ставит номер записи. Кроме того счетчики удобно использовать для сортировки по мере ввода информации в таблицу.
Введем в таблицу Личные данные аспирантов поле-счетчик КодЛичнДан.
Полям и таблицам следует давать понятные, запоминающиеся имена, которые соответственно не будут слишком длинными или сложными. Если имя поля состоит из нескольких слов, лучше не разделять их пробелами. Это затрудняет обращение к ним в программном коде Visual Basic for Applications (VBA) или в выражениях базы данных (формулах).
Например, можно соединить слова и начинать каждое слудующее слово с большой буквы: ДатаРождения, или разделить их символом подчеркивания: Дата_рождения. Поэтому таблицу назовем Асп_личн_данные, те же правила применим к названиям полей.
На этом этапе так же нужно определить типы данных полей, которые позволяют обеспечить точность вводимых данных, а также экономят дисковое пространство, в связи с тем, что определяют размеры полей.
В итоге после учета всех норм и правил получаем поля таблицы Асп_личн_данные (см. таблицу 2).
Таблица 2. Поля таблицы Асп_личн_данные
№ п/п |
Наименование поля |
Тип данных |
Примечание |
|
1 |
КодЛичнДан |
Счетчик |
Первичный ключ |
|
2 |
Фамилия |
Текстовый |
||
3 |
Имя |
Текстовый |
||
4 |
Отчество |
Текстовый |
||
5 |
Пол |
Текстовый |
||
6 |
Дата_рожд |
Дата/время |
||
7 |
Адрес |
Текстовый |
||
8 |
Телефон |
Текстовый |
||
9 |
Сотрудник |
Логический |
||
10 |
Место_работы |
Текстовый |
||
11 |
Доп |
Текстовый |
||
12 |
Гражданство |
Текстовый |
||
13 |
Паспорт_серия |
Текстовый |
||
14 |
Паспорт_номер |
Числовой |
||
15 |
Образование |
Текстовый |
||
16 |
ВУЗ |
Текстовый |
||
17 |
Специальность |
Текстовый |
||
18 |
Год_оконч |
Числовой |
Затем необходимо провести анализ полученной таблицы Асп_личн_данные (см. таблицу 3).
Таблица 3. Таблица Асп_личн_данные
Асп_личн_данные |
||||||||||||||||||
КодЛичнДан |
Фамилия |
Имя |
Отчество |
Пол |
Дата_рожд |
Адрес |
Телефон |
Сотрудник |
Место_работы |
Доп |
Гражданство |
Паспорт_серия |
Паспорт_номер |
Образование |
ВУЗ |
Специальность |
Год_оконч |
|
1 |
Павлов |
Александр |
Олегович |
М |
13.02.1990 |
111-11-11 |
-1 |
ОГИ |
Россия |
0 |
||||||||
2 |
Адельшинова |
Неля |
Вагизовна |
Ж |
20.12.1990 |
222-22-22 |
0 |
Россия |
0 |
|||||||||
3 |
Булычева |
Ирина |
Владимировна |
Ж |
30.10.1990 |
333-33-33 |
0 |
Россия |
0 |
|||||||||
4 |
Гудков |
Сергей |
Александрович |
М |
03.12.1989 |
444-44-44 |
-1 |
ОГИ |
Россия |
0 |
||||||||
5 |
Латышов |
Виктор |
Владимирович |
М |
13.01.1987 |
555-55-55 |
0 |
Россия |
0 |
|||||||||
6 |
Миненко |
Елена |
Васильевна |
Ж |
09.11.1985 |
666-66-66 |
0 |
Россия |
0 |
|||||||||
7 |
Морозова |
Наталья |
Евгеньевна |
Ж |
23.10.1984 |
777-77-77 |
0 |
Россия |
0 |
|||||||||
8 |
Новак |
Гузель |
Сагидулловна |
Ж |
06.01.1981 |
888-88-88 |
0 |
Страны СНГ и другие зарубежные страны |
0 |
В таблице Асп_личн_данные встречаются повторяющиеся данные, такие как Пол и Гражданство. Пол может принимать всего два значения, поэтому пусть это будет поле со списком с выбором одного из двух текстовых значений «м» или «ж». А вот гражданство может принимать различные значения, поэтому выделим его в отдельную таблицу, первичный ключ которой свяжем с числовым полем Гражданство таблицы Асп_личн_данные, которое будет внешний ключом.
Таким образом, поля таблицы Асп_личн_данные принимают доработанный вид (см. таблицу 4.)
Таблица 4. Доработанные поля таблицы Асп_личн_данные
№ п/п |
Наименование поля |
Тип данных |
Примечание |
|
1 |
КодЛичнДан |
Счетчик |
Первичный ключ |
|
2 |
Фамилия |
Текстовый |
||
3 |
Имя |
Текстовый |
||
4 |
Отчество |
Текстовый |
||
5 |
Пол |
Текстовый |
Подстановка текстовых значений «м» / «ж» |
|
6 |
Дата_рожд |
Дата/время |
||
7 |
Адрес |
Текстовый |
||
8 |
Телефон |
Текстовый |
||
9 |
Сотрудник |
Логический |
||
10 |
Место_работы |
Текстовый |
||
11 |
Доп |
Текстовый |
||
12 |
Гражданство |
Числовой |
Внешний ключ, связано с первичным ключом таблицы Гражданство |
|
13 |
Паспорт_серия |
Текстовый |
||
14 |
Паспорт_номер |
Числовой |
||
15 |
Образование |
Текстовый |
||
16 |
ВУЗ |
Текстовый |
||
17 |
Специальность |
Текстовый |
||
18 |
Год_оконч |
Числовой |
При создании таблицы Аспиранты воспользуемся правилами: введем поле-счетчик в качестве первичного ключа, имена полей будем составлять без пробелов, вычисляемые поля не будем хранить в таблице, данные будем разбивать на минимальные логические компоненты (см. таблицы 5-6).
Таблица 5. Поля таблицы Аспиранты
№ п/п |
Наименование поля |
Тип данных |
Примечание |
|
1 |
КодАсп |
Счетчик |
Первичный ключ |
|
2 |
Личные_данные |
Числовой |
Внешний ключ, связано с первичным ключом таблицы Асп_личн_дан |
|
3 |
Номер_договора |
Текстовый |
||
4 |
Дата_договора |
Дата/время |
||
5 |
Дата_зачисления |
Дата/время |
||
6 |
Дата_окончания |
Дата/время |
||
7 |
Сумма |
Денежный |
||
8 |
Муниципальный |
Логический |
||
9 |
Тип |
Текстовый |
||
10 |
Форма_обуч |
Текстовый |
||
11 |
Кафедра |
Текстовый |
||
12 |
Специальность |
Текстовый |
||
13 |
Руководитель |
Текстовый |
||
14 |
Стажер |
Логический |
Таблица 6. Таблица Аспиранты
КодАсп |
Личные_данные |
Номер_договора |
Дата_договора |
Дата_зачисления |
Дата_окончания |
Сумма |
Муниципальный |
Тип |
Форма_обуч |
Кафедра |
Специальность |
Руководитель |
Стажер |
|
2 |
2 |
01.11.2011 |
30.10.2015 |
0 |
0 |
Аспирант |
Заочная |
Экономики и финансов |
08.00.05 |
Волгин |
0 |
|||
3 |
3 |
01.11.2011 |
30.10.2015 |
0 |
0 |
Аспирант |
Заочная |
Экономики и финансов |
08.00.05 |
Сверчкова |
0 |
|||
4 |
15 |
01.11.2011 |
30.10.2015 |
0 |
0 |
Аспирант |
Заочная |
Экономики и финансов |
08.00.10 |
Карсанова |
0 |
|||
5 |
4 |
01.11.2011 |
30.10.2015 |
0 |
0 |
Аспирант |
Очная |
Экономики и финансов |
08.00.05 |
Левин |
0 |
|||
6 |
5 |
01.11.2011 |
30.10.2015 |
0 |
0 |
Аспирант |
Заочная |
Экономики и финансов |
08.00.05 |
Балицкий |
0 |
Видим повторяющиеся данные в полях Тип, Форма обучения, Кафедра, Специальность, Руководитель.
Руководитель - это фамилия преподаватели, т.к. у нас уже есть сущность Преподаватели, что в этой таблице поле Руководитель можно сделать числовым и связать с первичным ключом таблицы Преподаватели.
Для остальных повторяющихся данных создадим отдельные таблицы и аналогичным образом свяжем с внешними числовыми ключами.
Для учета планирования поступления добавим в эту таблицу планируемый год поступления.
Для учета отчислен ли аспирант создадим отдельную таблицу Отчисление для указание протокола об отчислении, а в таблицу Аспиранты добавим поле Статус со значениями «числится, отчислен, поступающий».
В итоге легко можно будет получить список тех или иных аспирантов, а также получить актуальную информацию.
Для статусов также создадим отдельную таблицу.
Таким образом, после определения и применения некоторых норм и правил, таблица Аспиранты принимает несколько доработанный вид полей (см. таблицу 7).
Таблица 7. Доработанные поля таблицы Аспиранты
№ п/п |
Наименование поля |
Тип данных |
Примечание |
|
1 |
КодАсп |
Счетчик |
Первичный ключ |
|
2 |
Личные_данные |
Числовой |
Внешний ключ, связано с первичным ключом таблицы Асп_личн_дан |
|
3 |
Номер_договора |
Текстовый |
||
4 |
Дата_договора |
Дата/время |
||
5 |
Дата_зачисления |
Дата/время |
||
6 |
Дата_окончания |
Дата/время |
||
7 |
Сумма |
Денежный |
||
8 |
Муниципальный |
Логический |
||
9 |
Тип |
Числовой |
Внешний ключ, связано с первичным ключом таблицы Типы_аспирантов |
|
10 |
Форма_обуч |
Числовой |
Внешний ключ, связано с первичным ключом таблицы Формы_обуч |
|
11 |
Кафедра |
Числовой |
Внешний ключ, связано с первичным ключом таблицы Кафедры |
|
12 |
Специальность |
Числовой |
Внешний ключ, связано с первичным ключом таблицы Специальности |
|
13 |
Руководитель |
Числовой |
Внешний ключ, связано с первичным ключом таблицы Преподаватели |
|
14 |
Стажер |
Логический |
||
15 |
Статус |
Числовой |
Внешний ключ, связано с первичным ключом таблицы Статусы |
|
16 |
ПланГодПоступл |
Числовой |
Работая над таблицей преподаватели, учитываем опыт, полученный в ходе создания предыдущих таблиц.
ФИО разбиваем на три составляющие, введем таблицы Степени, Звания, Должности для подстановки, пол сделаем полем со списком с подстановкой из двух значений (см. таблицу 8).
Таблица 8. Поля таблицы Преподаватели
№ п/п |
Наименование поля |
Тип данных |
Примечание |
|
1 |
КодПреп |
Счетчик |
Первичный ключ |
|
2 |
Фамилия |
Текстовый |
||
3 |
Имя |
Текстовый |
||
4 |
Отчество |
Текстовый |
||
5 |
Кафедра |
Числовой |
Внешний ключ, связано с первичным ключом таблицы Кафедры |
|
6 |
Степень |
Числовой |
Внешний ключ, связано с первичным ключом таблицы Степени |
|
7 |
Звание |
Числовой |
Внешний ключ, связано с первичным ключом таблицы Звания |
|
8 |
Должность |
Числовой |
Внешний ключ, связано с первичным ключом таблицы Должности |
|
9 |
Пол |
Текстовый |
Подстановка текстовых значений «м» / «ж» |
Для сдачи экзаменов различным типам аспирантов понадобятся различные поля, на основании этого можно сделать вывод, что имеет смысл разделить сдачу экзаменов для каждого типа отдельно (см. таблицы 9-10).
Таблица 9. Поля таблицы Асп_вступ_экз
№ п/п |
Наименование поля |
Тип данных |
Примечание |
|
1 |
КодСдачиЭкз |
Счетчик |
Первичный ключ |
|
2 |
Аспирант |
Числовой |
Внешний ключ, связано с первичным ключом таблицы Аспиранты |
|
3 |
Предмет |
Числовой |
Внешний ключ, связано с первичным ключом таблицы Предметы |
|
4 |
Оценка |
Текстовый |
Таблица 10. Поля таблицы СКЭ_экзамены
№ п/п |
Наименование поля |
Тип данных |
Примечание |
|
1 |
КодЭкз |
Счетчик |
Первичный ключ |
|
2 |
СКЭ |
Числовой |
Внешний ключ, связано с первичным ключом таблицы Аспиранты |
|
3 |
Предмет |
Числовой |
Внешний ключ, связано с первичным ключом таблицы Предметы |
|
4 |
Оценка |
Текстовый |
||
5 |
Номер_протокола |
Текстовый |
||
6 |
Дата_протокола |
Дата/время |
Аттестации также разделим по типам аспирантов (см. таблицы 11-12).
Таблица 11. Поля таблицы Асп_аттестации
№ п/п |
Наименование поля |
Тип данных |
Примечание |
|
1 |
КодАспАтт |
Счетчик |
Первичный ключ |
|
2 |
Аспирант |
Числовой |
Внешний ключ, связано с первичным ключом таблицы Аспиранты |
|
3 |
Год |
Числовой |
||
4 |
Оценка |
Текстовый |
Таблица 12. Поля таблицы КЭН_аттестации
№ п/п |
Наименование поля |
Тип данных |
Примечание |
|
1 |
КодАттест |
Счетчик |
Первичный ключ |
|
2 |
КЭН |
Числовой |
Внешний ключ, связано с первичным ключом таблицы Аспиранты |
|
3 |
Год |
Числовой |
||
4 |
Оценка |
Текстовый |
Для КЭН так же необходима таблица по составлению индивидуальных планов и защите диссертаций (см. таблицы 13-14).
Таблица 13. Поля таблицы КЭН_индивид_планы
№ п/п |
Наименование поля |
Тип данных |
Примечание |
|
1 |
КодИндПлан |
Счетчик |
Первичный ключ |
|
2 |
КЭН |
Числовой |
Внешний ключ, связано с первичным ключом таблицы Аспиранты |
|
3 |
Тема |
Текстовый |
||
4 |
Кол_часов |
Числовой |
||
5 |
Выполнен |
Логический |
Таблица 14. Поля таблицы КЭН_диссертации
№ п/п |
Наименование поля |
Тип данных |
Примечание |
|
1 |
КодДис |
Счетчик |
Первичный ключ |
|
2 |
КЭН |
Числовой |
Внешний ключ, связано с первичным ключом таблицы Аспиранты |
|
3 |
Тема |
Текстовый |
||
4 |
Руководитель |
Числовой |
Внешний ключ, связано с первичным ключом таблицы Преподаватели |
|
5 |
Дата_защиты |
Дата/время |
А вот рефераты будут иметь одинаковые поля для всех типов аспирантов, соответственно объединим все рефераты в одну таблицу (см. таблицу 15).
Таблица 15. Поля таблицы Рефераты
№ п/п |
Наименование поля |
Тип данных |
Примечание |
|
1 |
КодРеф |
Счетчик |
Первичный ключ |
|
2 |
Аспирант |
Числовой |
Внешний ключ, связано с первичным ключом таблицы Аспиранты |
|
3 |
Тема |
Текстовый |
||
4 |
Проверил |
Числовой |
Внешний ключ, связано с первичным ключом таблицы Преподаватели |
|
5 |
Оценка |
Текстовый |
||
6 |
Допущен |
Логический |
Итак, путем анализа данных было принято решение о введении дополнительных таблиц (см. таблицы 16-26).
Таблица 16. Поля таблицы Отчисление
№ п/п |
Наименование поля |
Тип данных |
Примечание |
|
1 |
КодОтчисл |
Счетчик |
Первичный ключ |
|
2 |
Аспирант |
Числовой |
Внешний ключ, связано с первичным ключом таблицы Аспиранты |
|
3 |
Номер_приказа |
Текстовый |
||
4 |
Дата_приказа |
Дата/время |
||
5 |
Причина |
Текстовый |
Таблица 17. Поля таблицы Гражданство
№ п/п |
Наименование поля |
Тип данных |
Примечание |
|
1 |
КодГражд |
Счетчик |
Первичный ключ |
|
2 |
Гражданство |
Текстовый |
Таблица 18. Поля таблицы Должности
№ п/п |
Наименование поля |
Тип данных |
Примечание |
|
1 |
КодДолжн |
Счетчик |
Первичный ключ |
|
2 |
Должность |
Текстовый |
Таблица 19. Поля таблицы Звания
№ п/п |
Наименование поля |
Тип данных |
Примечание |
|
1 |
КодЗвания |
Счетчик |
Первичный ключ |
|
2 |
Звание |
Текстовый |
Таблица 20. Поля таблицы Кафедры
№ п/п |
Наименование поля |
Тип данных |
Примечание |
|
1 |
КодКафедры |
Счетчик |
Первичный ключ |
|
2 |
Кафедра |
Текстовый |
Таблица 21. Поля таблицы Предметы
№ п/п |
Наименование поля |
Тип данных |
Примечание |
|
1 |
КодПредмета |
Счетчик |
Первичный ключ |
|
2 |
Предмет |
Текстовый |
Таблица 22. Поля таблицы Специальности
№ п/п |
Наименование поля |
Тип данных |
Примечание |
|
1 |
КодСпец |
Счетчик |
Первичный ключ |
|
2 |
Код |
Текстовый |
||
3 |
Специальность |
Текстовый |
Таблица 23. Поля таблицы Статусы
№ п/п |
Наименование поля |
Тип данных |
Примечание |
|
1 |
КодСтатуса |
Счетчик |
Первичный ключ |
|
2 |
Статус |
Текстовый |
Таблица 24. Поля таблицы Степени
№ п/п |
Наименование поля |
Тип данных |
Примечание |
|
1 |
КодСтепени |
Счетчик |
Первичный ключ |
|
2 |
Ученая_степень |
Текстовый |
Таблица 25. Поля таблицы Типы_аспирантов
№ п/п |
Наименование поля |
Тип данных |
Примечание |
|
1 |
КодТипАсп |
Счетчик |
Первичный ключ |
|
2 |
Тип_аспиранта |
Текстовый |
Таблица 26. Поля таблицы Формы_обуч
№ п/п |
Наименование поля |
Тип данных |
Примечание |
|
1 |
КодФормыОбуч |
Счетчик |
Первичный ключ |
|
2 |
Форма_обуч |
Текстовый |
2.5 ОПРЕДЕЛЕНИЕ СВЯЗЕЙ МЕЖДУ ТАБЛИЦАМИ
После распределения данных по таблицам необходимо выбрать способ, которым MS Access будет вновь объединять сведения таблиц.
Связи устанавливаются между первичным ключом одной таблицы и внешним ключом другой таблицы (т.е. ссылкой на первичный ключ первой таблицы). Значения в связанных полях при этом совпадают. Т.к. мы определили первичные и внешние ключи таблиц на предыдущем этапе, не составить сложности установить связи между ними.
Все связи получаются типа «один-ко-многим», что говорит о правильности распределения данных. Связь «один-к-одному» можно объединить в одну таблицу, «многие-ко-многим» решается введением дополнительных таблиц.
Все связи с обеспечением целостности данных для того, чтобы исключить случайное удаление данных на стороне «один» образуют единую схему данных (см. рис. 1).
Рис. 1. Схема данных
2.6 ЗАПРОСЫ БАЗЫ ДАННЫХ
1) Аспиранты_Запрос - объединяет данные таблиц Аспиранты и Асп_личн_дан, а также рассчитывает возраст аспирантов по дате рождения:
Возраст: DateDiff(«yyyy»;[Дата_рожд];Date())+(Format([Дата_рожд];»mmdd»)>Format(Date();»mmdd»))
2) Аспиранты_отчислВ_Запрос - объединяет все поля таблицы Аспиранты и расчетный год отчисления по дате приказа таблицы Отчисление:
ГодОтчисл: Year([Дата_приказа])
В результате запроса отображаются только отчисленные аспиранты с годом отчисления.
Для года отчисления задано условие отбора, требующее ввести параметр при запуске запроса:
[Введите требуемый год отчисления]
3) Для_отчета_ЗащДис: объединяет данные таблиц Аспиранты и Асп_Личн_Дан, а также таблицу КЭН_диссертации.
В результате запроса отображаются только КЭН, защитившие диссертацию.
4) ДляОтчета_Отчисл: объединяет таблицы Аспиранты и Отчисление, выводятся поля Дата_приказа и Форма_обучения.
5) НаучРук: объединяет таблицы Аспиранты и преподаватели, данные группируются по научному руководителю.
2.7 АВТОМАТИЗАЦИЯ ВВОДА, СОЗДАНИЕ ФОРМ
2.7.1 СПРАВОЧНЫЕ ФОРМЫ
Для ввода и редактирования данных в справочных таблицах созданы справочные формы ленточного типа. В примечании каждой из форм созданы кнопки перехода по записям, добавления и удаления записей, созданные с помощью мастера (см. рис. 2-10).
Рабочие формы
1) Асп_личн_данные(просмотр):
Предназначена для просмотра личных данных аспирантов. Ленточного типа, в свойствах задано Разрешить изменение, Разрешить добавление = Нет. В примечании кнопки перехода по записям, а также удаления записи - созданы с помощью мастера.
Для просмотра подробных данных, а также их редактирования есть кнопка Подробно, открывающая следующую форму Асп_личн_данные с фильтром по текущему аспиранту. Код на событие Нажатие кнопки:
Private Sub Кнопка26_Click()
DoCmd.OpenForm "Асп_личн_данные", , , "[КодЛичнДан] = " & Me.КодЛичнДан
End Sub
Кнопка «+» открывает ту же одиночную форму в режиме добавления данных:
Private Sub Кнопка32_Click()
DoCmd.OpenForm "Асп_личн_данные", , , , acFormAdd
End Sub
В правом углу формы есть кнопки для фильтрации данных по логическому полю Сотрудник: кнопка Показать сотрудников меняет источник формы с условием отбора «Сотрудник = Да»:
Private Sub Кнопка33_Click()
Me.RecordSource = "SELECT КодЛичнДан, Фамилия, Имя, Отчество, Пол, Дата_рожд, Адрес, Телефон, Сотрудник, Место_работы, Доп, Гражданство, Паспорт_серия, Паспорт_номер" & _
" FROM Асп_личн_данные" & _
" WHERE Сотрудник = True"
End Sub
Кнопка Показать всех меняет источник данных формы на первоначальный (без условия отбора):
Private Sub Кнопка34_Click()
Me.RecordSource = "SELECT КодЛичнДан, Фамилия, Имя, Отчество, Пол, Дата_рожд, Адрес, Телефон, Сотрудник, Место_работы, Доп, Гражданство, Паспорт_серия, Паспорт_номер" & _
" FROM Асп_личн_данные"
End Sub
2) Асп_личн_данные:
Предназначена для ввода и редактирования личных данных об аспирантах. Пол. Образование и гражданство выбираются со списков.
Если в форму добавляется новый аспирант, то выполняется проверка, открыта ли форма Аспиранты, и в нее подставляется новые данные. Выполняется это с помощью функции IsLoaded() в отдельном модуле Module1, проверяющей загружена ли форма, название которой указано в параметре функции в скобках:
Function IsLoaded(ByVal strFormName As String) As Boolean
Dim oAccessObject As AccessObject
Set oAccessObject = CurrentProject.AllForms(strFormName)
If oAccessObject.IsLoaded Then
If oAccessObject.CurrentView <> acCurViewDesign Then
IsLoaded = True
End If
End If
End Function
А также с помощью процедуры обработки события После вставки формы Асп_личн_данные:
Private Sub Form_AfterInsert()
If IsLoaded("Аспиранты") Then
Forms![Аспиранты]![Личные_данные] = Me.КодЛичнДан
Forms![Аспиранты]![Личные_данные].Requery
End If
End Sub
В данной процедуре проверяется открыта ли форма Аспиранты, и в нее подставляется код введенных личных данных аспиранта, затем обновляется это поле.
Для упрощения ввода личных данных об аспирантах добавлена обработка события После обновления поля Сотрудник:
Private Sub Сотрудник_AfterUpdate()
If Сотрудник = True Then
Me.Место_работы = "ОГИ"
Else: Me.Место_работы = ""
End If
End Sub
Если логическое поле Сотрудник = Истина, то Место работы принимает значение «ОГИ».
3) Аспиранты (просмотр):
Содержит поля и поля со списком для отображения текстовых значений для числовых полей - внешних ключей. Слева напротив каждой записи находится кнопка Подробно, открывающая одиночную форму для просмотра Аспиранты для просмотра подробной информации и ее редактирования.
Процедура обработки события Нажатие кнопки Подробно:
Private Sub Кнопка26_Click()
Select Case Me.Filter
Case "[Тип] = 1"
DoCmd.OpenForm "Аспиранты", acDesign, , , , acHidden
Forms![Аспиранты].Caption = "Аспирант"
DoCmd.Close acForm, "Аспиранты", acSaveYes
Case "[Тип] = 2"
DoCmd.OpenForm "Аспиранты", acDesign, , , , acHidden
Forms![Аспиранты].Caption = "КЭН"
DoCmd.Close acForm, "Аспиранты", acSaveYes
Case "[Тип] = 3"
DoCmd.OpenForm "Аспиранты", acDesign, , , , acHidden
Forms![Аспиранты].Caption = "СКЭ"
DoCmd.Close acForm, "Аспиранты", acSaveYes
End Select
DoCmd.OpenForm "Аспиранты", , , "[КодАсп] = " & Me.КодАсп
End Sub
В данной процедуре открывается форма Аспиранты с условием отбора по текущему коду. Перед этим проверяется, какой фильтр стоит в форме в данный момент, и открываемая форма подписывается соответственно отфильтрованному типу аспирантов.
Внизу содержатся кнопки перехода по записям. Удаления записи, созданные с помощью мастера, также кнопка «+» для добавления новой записи, которая открывает ту же форму Аспиранты в режиме добавления записи:
Private Sub Кнопка46_Click()
DoCmd.OpenForm "Аспиранты", acDesign, , , , acHidden
Forms![Аспиранты].Caption = "Добавление аспиранта/кэн/скэ"
DoCmd.Close acForm, "Аспиранты", acSaveYes
DoCmd.OpenForm "Аспиранты", , , , acFormAdd
End Sub
Перед открытием формы в режиме добавления она открывается в режиме конструктора в невидимом окне, меняется подпись формы на "Добавление аспиранта/кэн/скэ. Затем сохраняется сделанное изменение.
Также в форме есть несколько кнопок для фильтрации данных, которые меняют источник данных формы с различными условиями отбора:
Кнопка Отчисленные - добавляет к источнику формы условие отбора Статус = 2:
Private Sub Кнопка49_Click()
Me.RecordSource = "SELECT КодАсп, Личные_данные, Номер_договора, Дата_договора, Дата_зачисления, Дата_окончания, Сумма, Муниципальный, Тип, Форма_обуч, Кафедра, Специальность, Стажер, Статус, ПланГодПоступл, Руководитель FROM Аспиранты WHERE Статус=2"
End Sub
Кнопка Поступающие - добавляет к источнику формы условие отбора Статус = 3:
Private Sub Кнопка50_Click()
Me.RecordSource = "SELECT КодАсп, Личные_данные, Номер_договора, Дата_договора, Дата_зачисления, Дата_окончания, Сумма, Муниципальный, Тип, Форма_обуч, Кафедра, Специальность, Стажер, Статус, ПланГодПоступл, Руководитель FROM Аспиранты WHERE Статус=3"
End Sub
Кнопка Числятся - добавляет к источнику формы условие отбора Статус = 1 (т.е. числятся):
Private Sub Кнопка51_Click()
Me.RecordSource = "SELECT КодАсп, Личные_данные, Номер_договора, Дата_договора, Дата_зачисления, Дата_окончания, Сумма, Муниципальный, Тип, Форма_обуч, Кафедра, Специальность, Стажер, Статус, ПланГодПоступл, Руководитель FROM Аспиранты WHERE Статус=1"
End Sub
Кнопка Зачислены в добавляет к условию отбора Статус не равен «отчисленные» и год поступления равен вводимому году:
Private Sub Кнопка52_Click()
Me.RecordSource = "SELECT КодАсп, Личные_данные, Номер_договора, Дата_договора, Дата_зачисления, Дата_окончания, Сумма, Муниципальный, Тип, Форма_обуч, Кафедра, Специальность, Стажер, Статус, ПланГодПоступл, Руководитель FROM Аспиранты WHERE Статус <> 2 And Year([Дата_зачисления]) = [Введите требуемый год зачисления]"
End Sub
Кнопка Отчислены в меняет источник данных формы на сохраненный запрос Аспиранты_отчислВ_Запрос, рассмотренный выше в разделе Запросы:
Private Sub Кнопка53_Click()
Me.RecordSource = "Аспиранты_отчислВ_Запрос"
End Sub
4) Аспиранты: одиночная форма для просмотра подробных данных об аспиранте, редактирования и добавления новой записи.
ФИО аспиранта выбирается со списка из таблицы Личные данные. В случае, если это новый аспирант, есть кнопка «+» для быстрого добавления записи в Личные данные, не выходя из формы:
Private Sub Кнопка27_Click()
DoCmd.OpenForm "Асп_личн_данные", , , , acFormAdd
End Sub
С помощью этой процедуры открывается форма для внесения личных данных об аспиранте, в которой предусмотрено добавление новой записи в текущую форму Аспиранты (см. описание формы Асп_личн_данные).
На событие Открытие формы запускается следующая процедура:
Private Sub Form_Open(Cancel As Integer)
If Not IsNull(Me.Тип) Then
Select Case Me.Тип
Case 1
Me.Вступ_экзамены.Visible = True
Me.Рефераты.Visible = True
Me.АттестацииАсп.Visible = True
Case 2
Me.Аттестации.Visible = True
Me.Диссертации.Visible = True
Me.[Индивидуальные планы].Visible = True
Me.Форма_обуч.Visible = False
Case 3
Me.Экзамены.Visible = True
Me.Руководитель.Visible = False
End Select
End If
If Me.Статус = 3 Then Me.ПланГодПоступл.Visible = True Else Me.ПланГодПоступл.Visible = False
End Sub
В зависимости от типа аспиранта отображаются соответствующие кнопки внизу (изначально они скрыты). Для КЭН также скрывается поле Форма обучения, для СКЭ - руководитель.
Также проверяется, если статус аспиранта = «поступающий», То отображается планируемый год поступления.
Отображение соответствующих кнопок внизу формы (в примечании) происходит также по событию После обновления поля Тип:
Private Sub Тип_AfterUpdate()
If Not IsNull(Me.Тип) Then
Select Case Me.Тип
Case 1
Me.Вступ_экзамены.Visible = True
Me.Рефераты.Visible = True
Me.АттестацииАсп.Visible = True
Case 2
Me.Аттестации.Visible = True
Me.Диссертации.Visible = True
Me.[Индивидуальные планы].Visible = True
Me.Форма_обуч.Visible = False
Case 3
Me.Экзамены.Visible = True
Me.Руководитель.Visible = False
End Select
End If
End Sub
А отображение поля Планируемый год поступления также меняется по событию После обновления поля Статус:
Private Sub Статус_AfterUpdate()
If Me.Статус = 3 Then Me.ПланГодПоступл.Visible = True Else Me.ПланГодПоступл.Visible = False
End Sub
Кнопки внизу открывают соответствующие формы с фильтром по текущему аспиранту, а также задают значение по умолчанию для поля Аспирант, равное текущему:
Private Sub Аттестации_Click()
DoCmd.OpenForm "КЭН_аттестации", , , "[КЭН] = " & Me.КодАсп
Forms![КЭН_аттестации]![КЭН].DefaultValue = КодАсп
End Sub
Private Sub АттестацииАсп_Click()
DoCmd.OpenForm "Асп_аттестации", , , "[Аспирант] = " & Me.КодАсп
Forms![Асп_аттестации]![Аспирант].DefaultValue = КодАсп
End Sub
Private Sub Вступ_экзамены_Click()
DoCmd.OpenForm "Асп_вступ_экз", , , "[Аспирант] = " & Me.КодАсп
Forms![Асп_вступ_экз]![Аспирант].DefaultValue = КодАсп
End Sub
Private Sub Диссертации_Click()
DoCmd.OpenForm "КЭН_диссертации", , , "[КЭН] = " & Me.КодАсп
Forms![КЭН_диссертации]![КЭН].DefaultValue = КодАсп
End Sub
Private Sub Индивидуальные_планы_Click()
DoCmd.OpenForm "КЭН_индивид_планы", , , "[КЭН] = " & Me.КодАсп
Forms![КЭН_индивид_планы]![КЭН].DefaultValue = КодАсп
End Sub
Private Sub Рефераты_Click()
DoCmd.OpenForm "Асп_рефераты", , , "[Аспирант] = " & Me.КодАсп
Forms![Асп_рефераты]![Аспирант].DefaultValue = КодАсп
End Sub
Private Sub Экзамены_Click()
DoCmd.OpenForm "СКЭ_экзамены", , , "[СКЭ] = " & Me.КодАсп
Forms![СКЭ_экзамены]![СКЭ].DefaultValue = КодАсп
End Sub
А также есть кнопка для открытия личных данных текущего аспиранта:
Private Sub Кнопка26_Click()
DoCmd.OpenForm "Асп_личн_данные", , , "[КодЛичнДан] = " & Me.Личные_данные
End Sub
5) Рабочие формы по работе с аспирантами: Вступительные экзамены аспирантов, Прохождение аттестаций аспирантами, Прохождение аттестаций КЭН, Диссертации КЭН, Индивидуальные планы КЭН, Вступительные экзамены СКЭ.
Все эти формы ленточного типа с кнопками перехода по записям, добавления и удаления записей в примечании, созданными с помощью мастера. Аспирант выбирается из списка - запроса, состоящего из связанных таблиц Аспиранты и их личные данные:
SELECT Аспиранты.КодАсп, [Фамилия] & " " & [Имя] & " " & [Отчество] AS ФИО, Аспиранты.Тип FROM Асп_личн_данные INNER JOIN Аспиранты ON Асп_личн_данные.КодЛичнДан=Аспиранты.Личные_данные WHERE (((Аспиранты.Тип)=1)) ORDER BY [Фамилия] & " " & [Имя] & " " & [Отчество];
Отображается при этом ФИО аспиранта с помощью задания свойств Число столбцов = 2, Ширина столбцов = 0см;2см.
В данном примере показан запрос для отбора списка аспирантов, для КЭН соответственно задается условие отбора Тип = 2, для СКЭ Тип = 3.
6) Форма Рефераты:
Т.к. таблица Рефераты общая для различных типов аспирантов, в форме меняется подпись в зависимости от текущего типа. А также фильтруется список аспирантов согласно текущего типа. Функции для открытия формы Рефераты для различных типов сохранены в отдельном модуле Module1:
Public Function OpenRefAsp()
DoCmd.OpenForm "Рефераты", acDesign, , , , acHidden
Forms![Рефераты].Caption = "Рефераты аспирантов"
Forms![Рефераты]!Аспирант.RowSource = "SELECT Аспиранты.КодАсп, [Фамилия] & ' ' & [Имя] & ' ' & [Отчество] AS ФИО, Аспиранты.Тип FROM Асп_личн_данные INNER JOIN Аспиранты ON Асп_личн_данные.КодЛичнДан=Аспиранты.Личные_данные Where Аспиранты.Тип = 1"
DoCmd.Close acForm, "Рефераты", acSaveYes
DoCmd.OpenForm "Рефераты", , , "[Тип] = 1"
End Function
Public Function OpenRefKEN()
DoCmd.OpenForm "Рефераты", acDesign, , , , acHidden
Forms![Рефераты].Caption = "Рефераты КЭН"
Forms![Рефераты]!Аспирант.RowSource = "SELECT Аспиранты.КодАсп, [Фамилия] & ' ' & [Имя] & ' ' & [Отчество] AS ФИО, Аспиранты.Тип FROM Асп_личн_данные INNER JOIN Аспиранты ON Асп_личн_данные.КодЛичнДан=Аспиранты.Личные_данные Where Аспиранты.Тип = 2"
DoCmd.Close acForm, "Рефераты", acSaveYes
DoCmd.OpenForm "Рефераты", , , "[Тип] = 2"
End Function
Public Function OpenRefSKE()
DoCmd.OpenForm "Рефераты", acDesign, , , , acHidden
Forms![Рефераты].Caption = "Рефераты СКЭ"
Forms![Рефераты]!Аспирант.RowSource = "SELECT Аспиранты.КодАсп, [Фамилия] & ' ' & [Имя] & ' ' & [Отчество] AS ФИО, Аспиранты.Тип FROM Асп_личн_данные INNER JOIN Аспиранты ON Асп_личн_данные.КодЛичнДан=Аспиранты.Личные_данные Where Аспиранты.Тип = 3"
DoCmd.Close acForm, "Рефераты", acSaveYes
DoCmd.OpenForm "Рефераты", , , "[Тип] = 3"
End Function
В каждой из этих функций происходит следующее:
· Открывается форма рефераты в невидимом режиме конструктора
· Меняется подпись соответственно типа, например, Рефераты СКЭ
· Меняется источник строк поля со списком Аспирант с условием отбора согласно тип
· Закрывается форма с сохранением изменений
· Вновь открывается с условием отбора по типу
В примечании формы содержатся кнопки Показать только поступающих и Показать всех:
Private Sub Кнопка17_Click()
Me.Filter = "[Статус] = 3"
Me.FilterOn = True
End Sub
Private Sub Кнопка18_Click()
Me.FilterOn = False
End Sub
Первая кнопка создает фильтр Статус = «поступающие» и включает его в форме, вторая кнопка отключает фильтр.
7) Отчисление(просмотр):
Ленточного типа, содержит кнопки перехода по записям, удаления записи, созданные с помощью мастера, а также кнопку «+»:
Private Sub Кнопка15_Click()
DoCmd.OpenForm "Отчисление", , , , acFormAdd
End Sub
В свойствах формы запрещено изменение и добавление записей, поэтому форма только для просмотра. Для редактирования есть кнопка Подробно, открывающая форму Отчисление с фильтром по текущему номеру записи:
Private Sub Кнопка16_Click()
DoCmd.OpenForm "Отчисление", , , "[КодОтчисл] = " & Me.КодОтчисл
End Sub
8) Отчисление:
На событие После вставки формы Отчисление запускается запрос на обновление, меняющий статус текущего аспиранта на «отчисленный»:
Private Sub Form_AfterInsert()
CurrentDb.Execute "UPDATE [аспиранты] SET [статус] = 2 WHERE [Кодасп] = " & Me.Аспирант
End Sub
9) Кнопочная форма: создана с помощью диспетчера кнопочных форм и содержит несколько страниц:
Главная страница кнопочной формы содержит кнопки открытия других страниц, а также отчетов.
Подобные документы
База данных, применение фильтров для отбора записей по заданным условиям. Сохранение созданного фильтра для дальнейшего использования. Ввод формул и печать таблицы, построение диаграммы. База данных "Учет выпускаемой продукции" в Microsoft Access.
курсовая работа [994,8 K], добавлен 24.02.2010Назначение базы данных и ее основные функции. Категории пользователей, инфологическое и даталогическое проектирование базы данных "Интернет-магазин". Учет специфики предметной области, ограничения и бизнес-правила. Описание пользовательского интерфейса.
курсовая работа [3,3 M], добавлен 30.09.2011Связь между автоматическими системами управления (АСУ) и производственными мощностями. Внедрение АСУ на ОАО "Комиссаровский завод торгового машиностроения". Разработка базы данных в Microsoft Access. Общие эргономические требования к рабочему месту.
дипломная работа [4,5 M], добавлен 15.04.2009Общие и тактико-технические требования к конструкции бортовой аппаратуры. Блок ввода данных для энергонезависимого хранения и выдачи в бортовую ЭВМ данных полетного задания, а также приема данных регистрации. Структурная схема и разработка конструкции.
дипломная работа [207,2 K], добавлен 16.04.2012Блок обработки данных: общее устройство, выбор элементной базы. Структура операционного автомата. Расчет нагрузочной способности шины данных. Расчет длительности такта управляющего автомата. Память: построение, контроллер. Интерфейс шины процессор-память.
курсовая работа [3,7 M], добавлен 07.01.2015Разработка и описание структурно-функциональной схемы к динамику. Принципы построения устройства синтезатора звуковых сообщений, работа с таймером микроконтроллера. Выбор элементной базы. Разработка программного обеспечения, алгоритм и листинг программы.
курсовая работа [387,9 K], добавлен 24.12.2012Выбор формата данных. Разработка алгоритма и графа макрооперации. Разработка функциональной электрической схемы и её особенности. Выбор элементной базы. Разработка принципиальной схемы. Микропроцессорная реализация устройства на языке Ассемблер.
курсовая работа [955,0 K], добавлен 04.05.2014Главные особенности систем транкинговой радиосвязи. Организация связи в системе SmarTrunk II: состав, база данных, перспективы развития, основные преимущества. Основные функции, использованные в программе. Даталогическая и инфологическая модель.
курсовая работа [41,2 K], добавлен 08.02.2012Анализ основных потоков данных, пользовательских данных, информационной связности объектов. Подходы к проектированию высоконагруженных технологических сетей передачи данных, используемых в территориально-распределённых сетях. Методы балансировки нагрузки.
дипломная работа [3,2 M], добавлен 29.11.2015Разработка системы считывания данных с пяти четырехбитных датчиков. Проектирование структурной схемы микроконтроллера, схемы электрической принципиальной, блок-схемы работы программного обеспечения устройства. Разработка алгоритма основной программы.
контрольная работа [275,4 K], добавлен 08.01.2014