Создание базы данных учета оплаты дополнительных услуг и учета успеваемости учеников МБОУ ДОД 'ДХШ' НГО

  • Вид работы:
    Дипломная (ВКР)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    1,02 Мб
  • Опубликовано:
    2014-08-31
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Создание базы данных учета оплаты дополнительных услуг и учета успеваемости учеников МБОУ ДОД 'ДХШ' НГО

ВВЕДЕНИЕ

На любом предприятии существует та рутинная работа, которую не всегда хочется выполнять, но, несмотря на это, делать её нужно. Для того чтобы успешно реализовывались поставленные задачи, работу на предприятии обязательно нужно автоматизировать. Для этого организации приобретают программные комплексы, которые обеспечивают автоматизацию деятельности работников. В силу высоких затрат на приобретение и дальнейшее обслуживание программного комплекса возникает вопрос: нельзя ли разработать систему собственными силами?

В рамках работы административного отдела МБОУ ДОД «ДХШ» НГО, необходима система, выполняющая следующие основные функции:

ведение списка учеников, заключивших контракт на обучение с указанием даты заключения договора и его номера;

ведение списка учебных курсов и списка групп с указанием стоимости обучения на них;

учет оплаты, включая ведение списка учеников-должников.

ведение списка учеников с указанием краткой информации;

обеспечение ввода, обработки и хранение сведений об оплате;

формирование отчетных форм;

учет текущей успеваемости учеников;

учет общей успеваемости за весь период обучения;

расширяемость системы, то есть возможность её доработки в случае повышения требований к автоматизированной системе;

удобный пользовательский интерфейс.

В дальнейшем система может быть использована для автоматизации работы секретаря и всей учебной части.

Итак, объект моего исследования - организация МБОУ ДОД «ДХШ» НГО (Муниципальное бюджетное образовательное учреждение дополнительного образования детей «Детская художественная школа» Новоуральского городского округа).

Предмет исследования - система автоматизации учета оплаты за обучение и учета успеваемости учеников МБОУ ДОД «ДХШ» НГО а так же способы ее модернизации и внедрение новой системы автоматизации административного отдела.

Целью настоящей работы является оптимизация работы административного отдела художественной школы, путем автоматизации учета оплаты за обучение и учета успеваемости учеников по следующим направлениям:

введение безбумажной технологии;

уменьшение расходов времени на формирования приказов и выявление должников;

улучшение качества работы административного отдела и бухгалтерии;

формирование статистических отчетов по всем группам;

Задачи, решенные на пути к достижению цели:

исследование системы автоматизации учета оплаты за обучение и учета успеваемости учеников МБОУ ДОД «ДХШ» НГО выявление проблем и недостатков данной системы;

предложение путей решения выявленных проблем. Разработка программного обеспечения отвечающего требованиям организации.

Актуальность

Составляя планы технологического развития для успешной деятельности предприятия, руководители организаций сталкиваются с потребностью внедрения систем автоматизации. Решить эту задачу можно по-разному.

Вариант первый - не решать эту задачу вообще. При кажущейся простоте решения это чревато проблемами в дальнейшем. Во-первых, рано или поздно придется автоматизировать работу т.к. автоматизация каких-либо процессов существенно ускоряют работу, также дает возможность составления статистической отчетности при малых затратах на то времени, а также проводить анализ, что дает возможность прогнозирования.

Вариант второй - покупка полностью готовой системы. С одной стороны это реальный выход для тех компаний, которым необходимо, чтобы заложенные в такую систему возможности обеспечивали необходимый уровень автоматизации учетной и аналитической работы. Подобный подход позволяет в ограниченные сроки внедрить хорошо зарекомендовавшие себя программные решения. Для данного сценария критическими являются следующие факторы: качество программного обеспечения, надежность поставщиков, квалификация специалистов компании, стабильные условия для развития бизнеса.

АИС обычно приобретаются на достаточно долгий срок (среднее время «жизни» АИС - около 10 лет, но это не предел - во многих компаниях используются системы с гораздо большим «стажем» работы, правда, и обрастающими за это время новыми возможностями). Чтобы система автоматизации приносила ожидаемый эффект, она должна соответствовать данному предприятию - его возможностям, уровню развития и т.д. Стоимость АИС для небольшой фирмы не так уж и мала.

В настоящее время существует множество готовых решений для автоматизации административного отдела и в этих системах реализованы десятки различных задач, но в силу специфики деятельности каждого отдельного предприятия, не все найдут свое применение. Дорабатывать модули под конкретные запросы поставщику программного обеспечения зачастую невыгодно.

Отсюда вытекает третий вариант решения поставленной задачи - разработка информационной системы силами собственных специалистов.

Таким образом, актуальность данной проблемы определила выбор темы дипломной работы «Создание базы данных учета оплаты дополнительных услуг и учета успеваемости учеников МБОУ ДОД «ДХШ» НГО», круг вопросов и логическую схему ее построения.

1. ТЕОРЕТИЧЕСКИЙ ОБЗОР

.1 Исторический обзор Microsoft Access

версии 1.0 буквально открыла глаза многим разработчикам баз данных. Это была одна из первых реляционных баз данных для Windows 3 и первая база данных, удовлетворяющая потребности многих проектировщиков, как корпоративных, так и независимых. Кроме того, что Access проста в изучении, она позволяет очень легко создавать несложные приложения. Конечно, когда разработчики доходили в своей работе до определенного уровня, начинали проявляться ее ограничения, наиболее серьезным из которых было то, что размер базы данных не мог превышать 128 Мбайт. В Access 1.1 этот недостаток был устранен путем увеличения максимального размера базы данных до 1 Гбайт, были решены некоторые другие проблемы. И все же ей не хватало многих возможностей, присущих профессиональным базам данных. Программисты, привыкшие к почти абсолютной гибкости Visual Basic, были недовольны, в частности, неспособностью Access динамически изменять свойства элементов управления и форм. С другой стороны, процесс ввода и вывода данных в формах был настолько прост, что разработчики мирились с недостатками Access1.1. Access 2.0 предоставила множество новых возможностей. Она облегчала работу всех пользователей, но наибольший прогресс по сравнению с 1.1 ощутило сообщество разработчиков. Перечислим новшества, которые в первую очередь коснулись профессиональных программистов:

) значительно расширенные функциональные возможности событий и объектов;

) доступ к большинству свойств форм и отчетов в процессе выполнения;

) процедуры обработки событий;

) каскадное обновление и удаление связанных записей для обеспечения реляционной целостности базы данных;

) возможность соблюдать правила целостности на уровне ядра базы данных;

) новые типы запросов (на объединение и определение данных, запросы к серверу), а также поддержка подчиненных запросов;

) оптимизация процесса выполнения запросов по технологии Rushmor;

) Data Access Objects (DAO) - стройная объектная модель для операций над данными Jet;

) возможность использования как клиента OLE-автоматизации;

) программируемые средства защиты;

) поддержка 16-разрядных пользовательских элементов управления OLE.Access 95 совершила, можно сказать, революционный прорыв. И Access, и Jet были переведены с 16-разрядной на 32-разрядную Windows. Язык Access Basic и интегрированная среда разработки (IDE) были заменены Visual Basic for Applications с его собственной, улучшенной IDE. Были произведены и другие многочисленные усовершенствования, добавлены новые возможности:

. поддержка создания нескольких экземпляров форм;

. новое свойство формы KeyPreview;

. поддержка списков с множественным выбором и улучшенная работа полей со списками;

. новый легковесный элемент управления Image;

. возможность обнаружить и изменить тип элемента управления с использованием свойства Control Type;

. встроенная функция запроса по форме;

. поддержка модулей класса форм с общедоступными функциями (методами), а также процедурами Property Let, Get и Set;

. возможность при использовании события отчета NoData не печатать отчет, в котором нет ни одной записи;

. новое свойство RepeatSection, которое позволяет повторять заголовок группы в верхней части каждой новой страницы;

. возможность замены поля Counter более гибким полем AutoNumber;

11. новые конструкции VBA With.. .End With и For Each.. .Next;

. использование символа продолжения строки;

. поддержка именованных и необязательных параметров и массивов параметров;

. поддержка новых типов данных - Date, Boolean и Byte;

. усовершенствования в редакторе и отладчике Visual Basic, включая средство просмотра значений переменных и «цветной» синтаксис;

. поддержка репликации;

. повышение производительности и эффективности многопользовательской работы Jet 3;

. возможность использования VBA как сервера OLE-автоматизации;

. новые параметры запуска, запрещающие доступ к окну базы данных, модифицирование строки заголовка и пиктограммы приложения.

Следующая версия, Access 97, не содержала таких революционных усовершенствований, как Access 95. Однако и в ней появилось много новых функций и улучшений. Вот важнейшие из них:

) новый тип данных Hyperlink;

) мастер публикации в Web, облегчивший публикацию статических и динамических данных в корпоративных сетях и Интернете;

)облегченные формы, загружаемые быстрее обычных - благодаря тому, что в них нет программного кода;

) встроенный элемент управления Tab Control, упрощающий создание многостраничных диалоговых окон;

) полностью программируемые меню и панели инструментов, которые создаются на основе объектов CommandBar, объединенных в коллекцию CommandBars;

) новые свойства запросов RecordSetType, FailDnError и MaxRecords;

) поддержка модулей класса;

) поддержка функции Intel liSense, облегчающей написание программного кода (когда программист набирает код, редактор в определенные моменты предлагает ему для выбора перечни объектов, методов и свойств, а также списки параметров встроенных и пользовательских процедур);

) поддержка редактором кода механизма перетаскивания: теперь выделенный фрагмент кода можно перетащить мышью в любое другое место модуля;

) несколько усовершенствований процедуры отладки кода, включая использование новой панели локальных значений (Locals) и функции Data Tips;

) поддержка частичной репликации и репликации через Интернет;

) новый режим подключения клиент/сервер под названием ODBCDirect;

) специальный формат файлов MDE, позволяющий удалить из базы данных весь исходный код VBA.версии 2000 - это еще один серьезный шаг продукта вперед, так как в ней появился ряд очень существенных изменений:

. поддержка VBA 6 с использованием редактора, который применяется также остальными приложениями пакета Office;

. поддержка СОМ-надстроек, интегрированных с VBA на основе объектной модели программирования;

. поддержка новых функций и ключевых слов VBA: StrRev, MonthName, Split, Join, Replace, AddressOf, Debug.Assert и Implements;

. возможность задания условного форматирования данных, отображаемых в текстовых полях или полях со списком;

. поддержка форм, связанных с наборами записей и обновление форм с использованием транзакций;

. модель нового пользовательского интерфейса и поддержка страниц доступа к данным, которые позволяют организовать обмен данными Access с Web-браузером;

. проекты Access, позволяющие с помощью пользовательского интерфейса Access работать непосредственно с ядром базы данных SQL Server;

. интеграция с компонентами ADO, а также усовершенствованные средства поддержки DAO;

. хранение данных в ядре базы данных Jet в формате Unicode и возможность сжатия текстовых и memo-полей;

. увеличение максимального объема базы данных Jet до 2 Гбайт;

. поддержка ядром базы данных Jet блокировки на уровне строк;

. поддержка ядром базы данных Jet режима запросов с использованием синтаксиса ANSI-92 SQL, совместимого с Microsoft SQL Server;

. усовершенствованные средства репликации, в том числе механизм разрешения конфликтов на уровне столбцов и двунаправленной репликации при работе с SQL Server;

. объектная модель Jet Replication Objects (JRO) для работы с системой репликации;

инструмент корректировки имен объектов в подчиненных формах, отчетах и запросах (AutoCorrect).

1.2 Основные сведения

Приложение Microsoft Access 97/2000 (далее Access) является мощной и высокопроизводительной 32-разрядной системой управления реляционной базой данных (далее СУБД).

База данных - это совокупность структурированных и взаимосвязанных данных и методов, обеспечивающих добавление выборку и отображение данных.

Реляционная база данных. Практически все СУБД позволяют добавлять новые данные в таблицы. С этой точки зрения СУБД не отличаются от программ электронных таблиц (Excel), которые могут эмулировать некоторые функции баз данных.

Существует три принципиальных отличия между СУБД и программами электронных таблиц:

. СУБД разрабатываются с целью обеспечения эффективной обработки больших объёмов информации, намного больших, чем те, с которыми справляются электронные таблицы.

. СУБД может легко связывать две таблицы так, что для пользователя они будут представляться одной таблицей. Реализовать такую возможность в электронных таблицах практически невозможно.

. СУБД минимизируют общий объём базы данных. Для этого таблицы, содержащие повторяющиеся данные, разбиваются на несколько связанных таблиц.- мощное приложение Windows. При этом производительность СУБД органично сочетаются со всеми удобствами и преимуществами Windows.

Как реляционная СУБД Access обеспечивает доступ ко всем типам данных и позволяет одновременно использовать несколько таблиц базы данных. Можно использовать таблицы, созданные в среде Paradox или dBase.

Работая в среде Microsoft Office, пользователь получает в своё распоряжение полностью совместимые с Access текстовые документы (Word), электронные таблицы (Excel), презентации (PowerPoint). С помощью новых расширений для Internet можно напрямую взаимодействовать с данными из World Wide Web и транслировать представление данных на языке HTML, обеспечивая работу с такими приложениями как Internet Explorer и Netscape Navigator. (Бекаревич Ю. Б., Пушкина Н. В., 2003).специально спроектирован для создания многопользовательских приложений, где файлы базы данных являются разделяемыми ресурсами в сети. В Access реализована надёжная система защиты от несанкционированного доступа к файлам.

База данных храниться в одном файле, но профессиональные пользователи предпочитают разделять базу данных на два файла: в одном хранятся объекты данных (таблицы, запросы), в другом объекты приложения (формы, отчёты, макросы, модули).

В последних версиях Access представлен новый формат файла (MDE)-библиотеки, с помощью которого можно создавать приложения, не включая VBA-код.

Несмотря на то, что Access является мощной и сложной системой, его использование не сложно для непрофессиональных пользователей.

.3 Системные требования

. AMD64 1800 или мощнее

. Windows XP, Vista, 7.

. Не менее 256 Мб оперативной памяти (для совместной работы с другими приложениями не менее 512 Мб)

. Около 100 Мб дискового пространства (только для Access и новых баз данных).

1.4 Основные функции

. Организация данных. Создание таблиц и управление ими.

. Связывание таблиц и обеспечение доступа к данным. Access позволяет связывать таблицы по совпадающим значениям полей, с целью последующего соединения нескольких таблиц в одну.

. Добавление и изменение данных. Эта функция требует разработки и реализации представленных данных, отличных от табличных (формы).

. Представление данных. Access позволяет создавать различные отчёты на основе данных таблиц и других объектов базы данных.

. Макросы. Использование макросов позволяет автоматизировать повторяющиеся операции. В последних версиях Access макросы используют для совместимости.

. Модули. Модули представляют собой процедуру или функцию, написанные на Access VBA (диалект Visual Basic Application). Эти процедуры можно использовать для сложных вычислений. Процедуры на Access VBA превышают возможности стандартных макросов.

. Защита базы данных. Эти средства позволяют организовать работу приложения в многопользовательской среде и предотвратить несанкционированный доступ к базам данных.

. Средства печати. С помощью этой функции Access позволяет распечатать практически всё, что можно увидеть в базе данных.так же позволяет создавать дистрибутивные диски для распространения готового приложения (с помощью Office Developer Edition Tools). Распространение подразумевает поставку всех необходимых файлов на каком-либо носителе.

Пакет ODE Tools включает мастер установки, автоматизирующий создание средств распространения и программы установки. Он так же позволяет выполнение приложения на компьютерах, на которых не установлен Access.

.5 Элементы базы данных

. Таблицы. В базе данных информация хранится в виде двумерных таблиц. Можно так же импортировать и связывать таблицы из других СУБД или систем управления электронными таблицами. Одновременно могут быть открыты 1024 таблицы.

. Запросы. При помощи запросов можно произвести выборку данных по какому-нибудь критерию из разных таблиц. В запрос можно включать до 255 полей.

. Формы. Формы позволяют отображать данные из таблиц и запросов в более удобном для восприятия виде. С помощью форм можно добавлять и изменять данные, содержащиеся в таблицах. В формы позволяют включать модули.

. Отчёты. Отчёты предназначены для печати данных, содержащихся в таблицах и запросах, в красиво оформленном виде. Отчёты так же позволяют включать модули.

. Макросы (см. выше)

. Модули. Модули содержат VBA-код, используемый для написания процедур обработки событий таких, как, например, нажатия кнопки в форме или отчёте, для создания функций настройки, для автоматического выполнения операций над объектами базы данных и программного управления операциями, т.е. добавление VBA-кода позволяет создать полную базу данных с настраиваемыми меню, панелями инструментов и другими возможностями. Модули снимают с пользователя приложения необходимость помнить последовательность выбора объектов базы данных для выполнения того или иного действия и повышают эффективность работы.

База данных может содержать до 32768 объектов.

В состав Access входит множество мастеров, построителей и надстроек, которые позволяют упростить процесс создания объектов базы данных.

.6 Таблицы

. Создание таблицы в режиме Мастера таблиц

Процесс создания объекта базы данных при помощи мастера делится на несколько шагов, на каждом из которых можно установить требуемые ха­рактеристики создаваемого объекта. Мастер таблиц позволяет создать новую таблицу на основе 33 образцов таблиц делового применения и 20 образцов таблиц личного применения (для английской версии Access соответственно 77 и 44). Многие таблицы базы данных Борей созданы на основе образцов Мастера таблиц.

Использование Мастера таблиц служит отличным примером, позволяющим понять общую процедуру работы с мастерами Access. Создание таблиц на основе образцов Мастера таблиц имеет ограниченные возможности в настоящих приложениях. В большинстве случаев для создания таблиц используется импорт или связывание данных с другими базами данных или электронными таблицами.

. Создание таблицы в режиме Конструктора таблиц

Если импортировать или связать данные нельзя, то чаще всего таблицы создаются в режиме конструктора, который позволяет определить требуемую структуру таблицы. В режиме конструктора таблиц можно увидеть названия, типы данных, описания назначения, а также некоторые дополнительные свойства полей таблицы. То, что появляется в верхней части окна таблицы, открытой в режиме конструктора, называется бланком структуры таблицы или просто бланком таблицы. В нижней части окна таблицы, открытой в режиме конструктора, выводятся свойства полей таблицы, а также краткое описание активного свойства таблицы.

. Создание таблицы непосредственно в режиме таблицыдает возможность создания таблиц непосредственно в режиме таблицы. При этом Access создает пустую таблицу на основе таблицы, используемой по умолчанию, со структурой, имеющей 20 полей и 30 пустых записей. После этого можно вводить данные прямо в таблицу. При ее сохранении Access анализирует данные и выбирает тот тип для каждого поля, который больше всего соответствует введенным данным. Создание таблиц в режиме таблицы имеет ограниченное применение. Поля таблицы не имеют содержательных имен, так что почти всегда нужно будет редактировать структуру, чтобы переименовать поля.

Кроме того, из примера Access не всегда может правильно определить тип данных. Таблицы, которые созданы в режиме таблицы, не могут включать объекты OLE и мемо-поля. Если есть желание иметь такие поля, вам нужно изменить структуру таблицы. При создании таблицы в режиме таблицы не происходит экономии времени по сравнению с традиционным способом определения полей и установки их свойств в структуре пустой таблицы.

При разработке структуры таблицы необходимо указать, какую информацию она должна содержать. После того как определена информация, которая должна быть включена в таблицу, ее следует разбить по полям. Этот процесс включает в себя выбор имени поля, которое в таблице должно быть уникальным. Необходимо включать в имя поля как можно больше информации о его содержимом, но в то же время стараться избегать длинных имен. Обычно при разработке баз данных в различных таблицах могли содержаться поля с одинаковыми именами (чаще всего таблицы связывались по этим полям). Access также позволяет использовать одинаковые имена полей в различных таблицах, но по причине того, что Access использует имена полей при определении условий целостности данных, лучше не допускать повторения имен полей.

Перед началом заполнения таблицы нужно определить связи этой таблицы с другими таблицами базы данных, определить ключевое поле и создать индексы.

Связь между таблицами устанавливает отношения между совпадающими значениями в ключевых полях - обычно между полями разных таблиц. В большинстве случаев связывают ключевое поле одной таблицы с соответствующим ему полем (часто имеющим то же имя), которое называют полем внешнего ключа во второй таблице. Таблица, содержащая ключевое поле, называется главной, а таблица, содержащая внешний ключ - связанной. Существует четыре вида отношений:

Один к одному. При использовании отношения "один к одному" запись в таблице "А" (главной таблице) может иметь не более одной связанной записи в таблице "В" (связанной таблице) и наоборот. Этот тип связи используют не очень часто, поскольку такие данные могут быть помещены в одну таблицу. Связь с отношением "один к одному" используют для разделения очень широких таблиц или для отделения части таблицы по соображениям защиты. В таблицах связанных отношением "один к одному" ключевые поля должны быть уникальными.

Один ко многим. Связь с отношением "один ко многим" является наиболее часто используемым типом связи между таблицами. В такой связи каждой записи в таблице "А" могут соответствовать несколько записей в таблице "В", а запись в таблице "В" не может иметь более одной соответствующей ей записи в таблице "А". В таблице "А" ключевое поле должно быть уникальным. Связь с отношением "один ко многим" таблиц "А" и "В" можно рассматривать как связь с отношением "многие к одному" таблиц "В" и "А".

Многие к одному. При использовании отношения "многие к одному" одной записи в таблице "А" может соответствовать одна запись в таблице “B”, а запись в таблице "В" может иметь более одной соответствующей ей записи в таблице "А". В таблице "А" ключевое поле должно быть уникальным. Связь с отношением "один ко многим" таблиц "А" и "В" можно рассматривать как связь с отношением "многие к одному" таблиц "В" и "А".

Многие ко многим. При использовании отношения "многие ко многим" одной записи в таблице "А" могут соответствовать несколько записей в таблице "В", а одной записи в таблице "В" несколько записей в таблице "А". В этом случае не требуется уникальности ключевых полей таблиц "А" и "В". Этот вид отношения используется для связывания таблиц, имеющих только внешние ключи.

Связанные поля не обязательно должны иметь одинаковые имена, однако, они должны иметь одинаковые типы данных. Кроме того, связываемые поля типа "Числовой" должны иметь одинаковые значения свойства "Размер поля". Исключениями из этого правила являются поля счетчика с последовательной нумерацией, которые могут связываться с числовыми полями размера "Длинное целое". Существует возможность создать связь между текстовыми полями разной длины, но это может вызвать сложности при создании запросов.

Автоматическое обеспечение ссылочной целостности данных является важной особенностью Access. Если на связь между таблицами наложены условия ссылочной целостности, то Access не позволяет добавлять в связанную таблицу записи, для которых нет соответствующих записей в главной таблице, и изменять записи в главной таблице таким образом, что после этого в связанной таблице появятся записи, не имеющие главных записей; а также удалять записи в главной таблице, для которых имеются подчиненные записи в связанной таблице. Условия целостности данных определяют систему правил, используемых в Access для поддержания связей между записями в связанных таблицах. Эти правила делают невозможным случайное удаление или изменение связанных данных. После наложения условий целостности данных на операции со связанными таблицами накладываются ограничения. Невозможно ввести в поле внешнего ключа связанной таблицы значение, не содержащееся в ключевом поле главной таблицы.

Необходимо так же определить первичный ключ. Если таблица никогда не будет использоваться в качестве главной, то ключ для нее определять не нужно. В главных таблицах обычно содержится информация о реальных объектах, причем с каждым объектом ассоциируется только одна запись. Определение ключа таблицы является простейшим способом предотвращения появления в таблице одинаковых записей. В главной таблице связи должен быть определен первичный ключ. Access считает таблицы, у которых такой ключ не определен, подозрительными. При открытии таких таблиц в режиме конструктора появляется диалоговое окно, сообщающее о том, что ключ таблицы не определен. Ключ можно определить и в связанных таблицах, что поможет избежать появления повторяющихся данных. Ключ таблицы можно задать по значению нескольких полей. Access автоматически индексирует таблицу по значению ключа, но может потребоваться создать дополнительные индексы по значениям других полей. Индексы позволяют ускорить поиск данных в тех полях таблицы, по которым она проиндексирована. Каждая таблица Access может иметь до 32 индексов, 5 из которых могут быть составными (в составной индекс может входить не более 10 полей). Тем не менее, не стоит увлекаться созданием индексов для каждого поля таблицы и всех их комбинаций, поскольку это может существенно замедлить процесс заполнения таблицы (при изменении или добавлении записи автоматически обновляются все индексы).

Одним из основных принципов разработки реляционных баз данных является то, что все данные, содержащиеся в поле таблицы, должны иметь один и тот же тип. Для каждого поля таблицы необходимо задать тип данных. По умолчанию используется тип данных «Текстовый». При задании типа данных поля можно также указать размер, формат и другие параметры, влияющие на отображение значения поля и точность числовых данных.

Основные типы данных:

. текстовый. Текст или числа, не требующие проведения расчётов;

. МЕМО. Поле этого типа предназначено для хранения небольших текстовых данных (до 64000 символов). Поле этого типа не может быть ключевым или проиндексированным;

. числовой. Этот тип данных содержит множество подтипов. От выбора подтипа (размера) зависит точность вычислений;

. счётчик. Уникальные, последовательно возрастающие числа, автоматически вводящиеся при добавлении новой записи в таблицу;

. логический. Логические значения, а так же поля, которые могут содержать одно из двух возможных значений;

. денежный. Денежные значения и числовые данные, используемые в математических вычислениях;

. дата/время. Дата и время хранятся в специальном фиксированном формате;

. поле объекта OLE. Включает звукозапись, рисунок и прочие типы данных. Поле этого типа не может быть ключевым или проиндексированным;

. гиперсвязь. Содержит адреса Web-страниц.

.7. Запросы

Запросы являются важным инструментом в любых системах управления базами данных. Они используются для выделения, обновления и добавления новых записей в таблицы. Чаще всего запросы используются для выделения специфических групп записей, чтобы удовлетворить определенному критерию. Кроме того, их можно использовать для получения данных из различных таблиц, обеспечивая единое представление связанных элементов данных.

В Access существует четыре типа запросов для различных целей.

Запросы на выборку отображают данные из одной или нескольких таблиц в виде таблицы.

Перекрестные запросы собирают данные из одной или нескольких таблиц в формате, похожем на формат электронной таблицы. Эти запросы используются для анализа данных и создания диаграмм, основанных на суммарных значениях числовых величин из некоторого множества записей.

Запросы на изменение используются для создания новых таблиц из результатов запроса и для внесения изменений в данные существующих таблиц. С их помощью можно добавлять или удалять записи из таблицы и изменять записи согласно выражениям, задаваемым в режиме конструктора запроса.

Запросы с параметрами - это такие запросы, свойства которых изменяются пользователем при каждом запуске. При запуске запроса с параметром появляется диалоговое окно, в котором нужно ввести условие отбора. Этот тип запроса не является обособленным, т. е. параметр можно добавить к запросу любого типа. (Карпова Т.С., 2002).

.8 Формы

Формы Access позволяют создавать пользовательский интерфейс для таблиц базы данных. Хотя для выполнения тех же самых функций можно использовать режим таблицы, формы предоставляют преимущества для представления данных в упорядоченном и привлекательном виде. Формы позволяют также создавать списки значений для полей, в которых для представления множества допустимых значений используются коды. Правильно разработанная форма ускоряет процесс ввода данных и минимизирует ошибки.

Формы создаются из набора отдельных элементов управления: текстовые поля для ввода и редактирования данных, кнопки, флажки, переключатели, списки, метки полей, а также рамки объектов для отображения графики и объектов OLE. Форма состоит из окна, в котором размещаются два типа элементов управления: динамические (отображающие данные из таблиц), и статические (отображающие статические данные, такие, как метки и логотипы).

Формы Access являются многофункциональными; они позволяют выполнять задания, которые нельзя выполнить в режиме таблицы. Формы позволяют производить проверку корректности данных, содержащихся в таблице. Access позволяет создавать формы, включающие другие формы (форма внутри формы называется подчиненной). Формы позволяют вычислять значения и выводить на экран результат. (Карпова Т.С., 2002).

Приложения для работы с базами данных можно разделить на три основных категории:

Управление транзакциями. Эти формы, работают непосредственно с таблицами, при условии, что активна только одна таблица. Если для добавления и редактирования информации в более чем одной таблице используется единственная форма, то можно создать запрос на обновление, включающий все нужные поля, а затем создать форму на основе этого запроса. Главная форма также может использовать единственную таблицу в качестве источника данных, но, кроме того, включать подчиненные формы, в качестве источника данных которых используются другие таблицы. Подчиненная форма, которая появляется ниже текстовых полей главной формы, используется для просмотра и добавления данных в таблицу, связанную с подчиненной формой.

Доступ к данным. Такие формы предназначены только для просмотра информации. Формы, предназначенные только для доступа к данным, можно разрабатывать как с целью перспективного планирования действий, так и для принятия экстренного решения. Экстренное решение приводит к единственному действию, такому, например, как предоставление большого кредита клиенту, или посылка представителя по продажам для определения причины отказа клиента от товара. Приложения Access позволяют использовать три уровня вложенности форм: главная, подчиненная и подчиненная форма, включенная в предыдущую подчиненную форму. Формы, предназначенные только для доступа к данным, в качестве источника данных часто используют запросы, которые суммируют данные по временным промежуткам.

Администрирование баз данных. Приложения этой категории выполняют административные функции такие, как создание баз данных или таблиц, разграничение прав доступа пользователей к объектам баз данных, обеспечение безопасности с помощью шифрования, периодическое уплотнение базы данных, а также операции резервного копирования.

Приложения для администрирования баз данных требуют наличия полного доступа ко всем объектам, содержащимся в базе данных.

Простейший путь создания основной и подчиненной форм - использование Мастера форм, который позволяет создавать формы (с подчиненными или без), содержащие поля из одной или более таблиц или запросов. Мастер форм создает базовый внешний вид формы и добавляет текстовые поля для отображения и редактирования значений полей таблиц. Независимо от того, являетесь ли вы профессиональным разработчиком приложений или начинающим пользователем, использование Мастера форм заметно упрощает и ускоряет процесс создания простых форм, которые затем можно усовершенствовать в режиме конструктора.

.9 Отчёты

Конечным продуктом большинства приложений баз данных является отчет. В Access отчет представляет собой специальный тип непрерывных форм, предназначенных для печати. Для создания отчета, который можно распечатать и распределить между потребителями, Access комбинирует данные в таблицах, запросах и даже формах. Распечатанная версия формы может служить отчетом. (Коннолли Т., Бегг К., Страчан А., 2000).

Создаваемые Access отчеты делятся на три основных типа:

. отчеты в одну колонку представляют собой один длинный столбец текста, содержащий значения всех полей каждой записи таблицы или запроса. Надпись указывает имя, а справа от нее указывается значение поля. Новое средство Access Автоотчет позволяет создать отчет в одну колонку щелчком по кнопке панели инструментов Автоотчет. Отчеты в одну колонку используются редко, поскольку такой формат представления данных приво­дит к лишней трате бумаги;

. в ленточных отчетах для каждого поля таблицы или запроса выделяется столбец, а значения всех полей каждой записи выводятся по строчкам, каждое в своем столбце. Если в записи больше полей, чем может поместиться на странице, то дополнительные страницы будут печататься до тех пор, пока не будут выведены все данные; затем начинается печать следующей группы записей;

. многоколоночные отчеты создаются из отчетов в одну колонку при использовании колонок "газетного" типа или колонок "змейкой", как это делается в настольных издательских системах и текстовых процессорах. Информация, которая не помещается в первом столбце, переносится в начало второго столбца, и так далее. Формат многоколоночных таблиц позволяет сэкономить часть бумаги, но применим не во всех случаях, поскольку выравнивание столбцов едва ли соответствует ожиданиям пользователя.

В основном отчёты проще всего построить при помощи Мастера отчётов. Мастер отчетов старается создать оптимальный вариант окончательного отчета с первой попытки. Обычно мастер в достаточной степени приближается к законченному варианту, так что тратиться намного меньше времени на редактирование базового отчета мастера, чем ушло бы на создание отчета из незаполненного шаблона.

.10 Макросы

При работе с базой данных часто приходится снова и снова выполнять одни и те же задачи. Чтобы не повторять одни и те же действия, можно использовать макросы. База данных неуклонно разрастается по мере того, как туда вносятся новые записи в формы, создаются запросы и распечатываются новые отчеты. При этом разрабатываются и сохраняются для последующего использования новые объекты. Приходится регулярно выполнять некоторые задачи. Для выполнения таких регулярных задач удобно использовать макросы Access. После создания этих небольших программ можно запускать их автоматически при определенных действиях пользователя (например, при щелчке на кнопке или при открытии определенной формы). Для автоматического запуска макросов в Access используются так называемые события. Макросы Access позволяют автоматически повторять различные действия и тем самым избавляют от написания сложных программ и подпрограмм. Выполнение прикладной задачи можно представить как результат последовательного выполнения действий, каждое из которых может быть записано соответствующей командой на языках Visual Basic и VBA. Кроме того, с помощью макроса можно имитировать выбор команды меню или перемещение мыши. Макросы Access обычно не дублируют отдельных нажатий клавиш или перемещений мыши, выполняя особые, заданные пользователем задачи, например открытие формы или запуск отчета. Используя макросы для выполнения рутинных операций, в существенно экономит время и силы. Кроме того, поскольку всякий раз при запуске макроса будет осуществляться одна и та же последовательность действий, макрос сделает работу с базой данных более эффективной и аккуратной. (Корнеев И.К., Машурцов В.А., 2001).

Назначать макросы, зависящие от событий, можно с помощью окна свойств форм и отчетов. Что касается таблиц и запросов, они свойствами событий не обладают. Кроме того, при работе с формами можно запускать макросы с помощью имеющихся в Access панелей инструментов, командных кнопок и меню. Использование этих особенностей позволяет очень легко и эффективно использовать макросы, связанные с событиями.

Макросы можно запускать и на уровне отдельных элементов управления, используя для этого соответствующие события. Например, можно проверить правильность ввода сложных данных непосредственно на уровне поля (а не после выхода этой записи), используя для этого свойство данного поля, а не свойства на уровне всей формы.

Любой макрос может состоять из одной или нескольких макрокоманд. Можно ввести последовательность выполняемых макрокоманд в столбец. Макрокоманда, а напротив каждой команды в столбце Примечание - дать описание соответствующей команды. Примечания не оказывают влияния на выполнение макроса. В нижней части окна находится область Аргументы макрокоманды. В этой области можно задать необходимые аргументы (свойства, параметры) для соответствующих макрокоманд. Многие макрокоманды требуют введения дополнительной информации, например о том, над каким объектом следует выполнять указанное действие.

После создания макросов можно объединить несколько взаимосвязанных макросов в один.

.11 Панели и меню

До сих пор приходилось иметь дело с отдельными объектами Access. И с каждым из них нужно работать в интерактивном режиме, открывая в окне базы данных вкладку требуемого объекта.

Но можно связать объекты в единое приложение. При этом вам не потребуется умение создавать сложные программы. Благодаря использованию кнопочных форм, диалоговых окон и меню работу с приложением можно автоматизировать и упростить, скрывая от пользователя ненужные в текущий момент объекты Access.

Кнопочная форма представляет собой созданную пользователем форму с кнопками. С их помощью можно, например, запускать макросы открытия форм и печати отчетов. С помощью кнопочной формы выполнить несколько действий можно, щелкнув на одной кнопке. Используя кнопочную форму и другие объекты можно объединять созданные ранее объекты базы данных в одном приложении (при этом приложение может иметь вид, отличный от внешнего вида Access). В основном кнопочная форма используется в качестве главного меню приложения. Поскольку кнопочная форма выполняет только роль меню приложения, в ней следует использовать минимальное число элементов управления. Поэтому обычно в кнопочную форму включают только кнопки, надписи, рамки объектов, линии и пря­моугольники. Другие типы элементов управления, такие как текстовые поля (связанные с полями базы данных), списки, поля со списком, диаграммы и подчиненные формы, обычно в этой форме не используются. Создавая кнопочную форму, в ней следует разместить надписи, а также линии, прямоугольники или рисунки, чтобы сделать ее эстетически более привлекательной. Кнопка является простейшим элементом управления формы и используется для запуска макроса. В Access благодаря макросам, запускаемым с помощью кнопок, можно выполнять самые различные задачи.

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

В Access можно создать три типа меню:

. menu bar. Обычное меню, которое может располагаться вверху формы и иметь выпадающие подменю;

. tool bars. Группы пиктограмм, обычно располагающиеся под меню;

. shortcut bar. Меню, всплывающие после щелчка правой кнопки мыши.

1.12 Visual Basic for Application

В Access пользователь может управлять выполнением приложении, например, изменить информацию в таблице или щелкнуть на командной кнопке. Используя в приложении макросы и процедуры, можно реализовать реакцию пользователя на эти действия. Для этого в Access предусмотрены характеристики событий для каждого элемента управления, который помещается в форму. Подключая макрос или процедуру к определенному событию элемента управления, можно не заботиться о последовательности действий, выполняемых пользователем в форме. Обработка событий представляет собой программный код, выполняемый при возникновении этого события. Код непосредственно присоединяется к форме или отчету, содержащему обрабатываемое событие.

В предыдущих версиях Access имела собственный язык Basic, называемый Access Basic. В последних версиях Access он заменен языком Visual Basic for Applications (VBA) компании Microsoft. Несмотря на некоторую схожесть, между этими языками есть существенные различия. VBA становится общим языком для всех приложений Microsoft Office. VBA является современным языком структурного программирования. Находясь в окне модулей, можно создавать и редактировать код VBA и процедуры.Visual Basic для приложений играет важную роль при разработке баз данных Access. С помощью VBA можно настроить формы и отчеты, запустить макросы, а также отобразить объект Access в других приложениях или извлечь данные. Используя Visual Basic для приложений, можно вывести формы и отчеты, выполнить методы объектов, а также создать и изменить элементы. Кроме того, имеется возможность работать с информацией непосредственно: можно создать наборы данных, задать их параметры и изменить информацию в них. (Бекаревич Ю. Б., Пушкина Н. В., 2003).

2. АНАЛИТИЧЕСКИЙ ОБЗОР

.1 Описание предметной области

Детская художественная школа открылась 29 октября 1979 года. Первоначальное число учащихся составляло 40 человек, занятия проходили в 2- х классах общеобразовательной школы. Первый директор, организатор художественной школы, она же и единственный учитель - Бобкова Юлия Степановна. В 1981 году школа получила отдельное двухэтажное здание по ул. Мичурина, дом 20., полезной площадью 1450 м. В 1983 году состоялся первый выпуск учащихся из 36 человек. Школу закончило 510 учащихся, из них более 80 человек закончили или продолжают учебу в высших и средних специальных (художественных) учебных заведениях страны. До 1991 года срок обучения в школе был 4 года, контингент на каждый год составлял 160 учащихся в основном составе и 80-90 учащихся в подготовительных группах. В 1991 году структура школы изменилась - из четырехлетней была преобразована в семилетку. Организационно оформившись в семилетку перед нами встала задача определиться с программами по всему курсу обучения. Педагогическим коллективом была решена и эта задача. В 1996 году здание было закрыто на реконструкцию, но учебный и творческий процесс продолжался в двух небольших зданиях бывших детских садов.

февраля 2001 года состоялось торжественное открытие нового здания ДХШ г. Новоуральска.

Полное официальное наименование - Муниципальное бюджетное учреждение дополнительного образования детей «Детская художественная школа» Новоуральского городского округа.

Рис 2.1 ДХШ.

Основной целью ДХШ на сегодняшний день является - воспроизводство творческой интеллигенции, являющейся носителем культурного наследия прошлого, создающей новые эстетические и культурные ценности, выполняющей роль генератора идей. Многогранная деятельность ДХШ направлена на воспитание профессионалов в области художественного творчества, любителей изобразительного искусства, активных потребителей художественных ценностей.

За 25 лет существования ДХШ свидетельства об ее окончании получили более 800 человек. Выпускники ДХШ продолжают обучение в средних специальных и высших учебных заведениях Екатеринбурга и Нижнего Тагила, Челябинска, Москвы и Санкт-Петербурга. Среди бывших учеников ДХШ есть архитекторы и реставраторы, модельеры и дизайнеры, мастера - краснодеревщики, ювелиры, театральные художники, живописцы и педагоги.

Активная творческая деятельность учащихся и педагогов, методическая, выставочная и просветительская работа школы позволяют ей иметь «свое имя», «свое лицо», положительный рейтинг в городе, области, системе ЗАТО. Таким образом, ДХШ является одним из ведущих учреждений художественного образования детей Свердловской области, центром эстетического воспитания юных новоуральцев.

В первый класс детской художественной школы принимаются дети в возрасте 8-9 лет. В учебный план включены предметы: рисунок, живопись, композиция станковая и прикладная, история искусств и скульптура.

В школе для занятий оборудовано 11 классов, имеющих всё для полноценного учебного процесса: столы, стулья, парты, мольберты, затемнения, видео, аудиоаппаратура и другое оборудование.

В школе имеется: кабинет скульптуры со специальным оборудованием для занятий лепкой и помещением для обжига керамики, муфельными печами и ваннами для хранения глины; Кабинет истории искусств имеет нетрадиционное оборудование - отсутствуют парты, стулья, вместо них мягкая мебель, ковры, цветной телевизор, музыкальный центр, видеомагнитофон для просмотра видеофильмов по искусству и прекрасная библиотека, насчитывающая более 2,5 тысяч книг. Кабинет графики со всеми необходимыми материалами для занятий и офортным станком, где учащиеся осваивают технику линогравюры и офорта.

Основным элементом обучения в школе является классический тип проведения занятий - классно-урочный. Форма обучения - групповые занятия. В группе присутствует от 10 до 15 учащихся. Две недели летнего отдыха учащиеся по учебному плану посвящают летней практике - пленэру. В это время они вместе со своими преподавателями в черте города, в лесу и на озере, в ближайших деревнях пишут и рисуют с натуры нашу уральскую природу. В течение года учащиеся нашей школы бывают в музеях и выставочных залах г.Екатеринбурга - организовываются автобусные экскурсии. Группы учащихся выезжают в г. Москву и г. Санкт- Петербург на музейную практику. В 1995 году за отличную учебу в ДХШ группа учащихся из 9 человек путешествовала по трем столицам - Братислава - Вена - Будапешт. Другая группа из 6 человек путешествовала по Италии.

Необходимо отметить, что учебный процесс в ДХШ не замкнут сам на себя, школа является эстетическим и художественным центром городского значения. Постоянными выставочными залами для лучших работ учащихся и педагогов школы являются: Театр Оперетты, Городская библиотека, библиотека для детей и юношества, театр кукол «Сказ» - здесь проходит 10-12 выставок в год. В стенах самой художественной школы проходит до 20 выставок в год: это лучшие работы учащихся ДХШ, лучшие домашние работы учащихся, декоративно-прикладные работы, работы педагогов ДХШ, работы профессиональных художников из Екатеринбурга и области, работы самодеятельных художников города, работы учащихся общеобразовательных школ.

.2 Общий анализ

Для создания дипломного проекта необходимо выявить основные функции базы данных. Для определения этих функций требуется ознакомиться со структурой и документооборотом детской художественной школы г.Новоуральска (Рис 2.2).










Рис 2.2 - документооборот предприятия.

При изучении структуры предприятия, и ознакомления с документооборотом, были определены два отдела, которые обладают большим количеством различной документации это:

Административный отдел;

Отдел бухгалтерии.

После изучения работы этих отделов, были выявлены основные служебные обязанности работников этих отделов.

Основные обязанности главного бухгалтера:

Ведение списка групп с указанием стоимости обучения;

Учет оплаты учеников;

Регистрация оплаты учеников;

Контролировать оплату учеников;

Введение списка должников;

Подготовка отчетных документов.

Рис 2.3 - Функции главного бухгалтера.

Основные функции административного отдела:

Принятие заявлений от учеников;

Работа с учениками;

Хранение данных об учениках;

Ведение текущей и полной успеваемости;

Ведение списка преподаваемых дисциплин;

Подготовка документов для проведения отчетности по предметам;

Формирование отчетной документации.

Рис 2.4 - Функции зам. директора.

Описанные выше функции являются общими для этих отделов. Кроме того, в других учебных заведениях могут выполнять и дополнительные функции, но в данном дипломном проекте они рассматриваться не будут. Дополнительные функции могут быть добавлены по запросу организации-заказчика.

На основании функций этих отделов и требований сотрудников этих отделов, был составлен список функций базы данных:

ведение списка учеников, заключивших контракт на обучение с указанием даты заключения договора и его номера;

ведение списка учебных курсов и списка групп с указанием стоимости обучения на них;

учет оплаты, включая ведение списка учеников-должников;

ведение списка учеников с указанием краткой информации;

обеспечение ввода, обработки и хранение сведений об оплатах;

формирование отчетных форм;

учет текущей успеваемости учеников;

учет общей успеваемости за весь период обучения;

расширяемость системы, то есть возможность её доработки в случае повышения требований к автоматизированной системе;

удобный пользовательский интерфейс.

2.3 Выбор среды разработки

Для разработки базы данных использовалась среда Microsoft Access (Рис 2.5) из пакета программ Microsoft Office, сочетающая в себе быструю и удобную СУБД.

Рис 2.5 - Среда разработки Microsoft Access.

Access идеально подходит для разработки данного проекта. Данная СУБД является наиболее доступной и широко используемой в среде Microsoft Windows реляционной СУБД, и в то же время мощной системой средств, которой достаточно для реализации проектов для малых и средних предприятий. Несмотря на то, что Microsoft Access является мощной и сложной системой, его использование не сложно для непрофессиональных пользователей.

.4 Техническое задание на разработку

Автоматизированная информационная система учета оплаты за обучение и учета успеваемости учеников МБОУ ДОД «ДШХ» НГО.

Введение.

Наименование

Автоматизированная информационная система художественной школы по учету оплаты за обучение и учета успеваемости учеников.

Краткая характеристика и области применения.

Автоматизированная информационная система художественной школы представляет собой информационную систему для автоматизации ввода, регистрации и выдаче информации об оплате обучения. АИС предназначена в основном, для использования в средних и крупных организациях.

Основание для разработки:

Задание на дипломный проект.

Назначение и цели создания системы

. Назначение разработки:

Программный продукт (ПП) предназначен для учета оплаты обучения в детской художественной школе, и представления отчетов в виде калькуляционных ведомостей.

.2 Цели создания

введение безбумажной технологии;

уменьшение расходов времени на формирования приказов и выявление должников;

улучшение качества работы административного отдела и бухгалтерии;

формирование статистических отчетов по всем группам;

снижение затрат на обработку первичной информации;

создание благоприятного психологического климата при работе.

Технические требования

Требования к функциональным характеристикам.

Состав выполняемых функций:

предоставление готовых форм для ввода исходных данных;

обработка исходных данных и составление статистики;

составление специальных форм отчетов.

Организация входных и выходных данных:

Входные данные - вносимые пользователем сведения об учащихся, сведения об оплате. Выходные данные - отчеты об оплате, а так же сведения об успеваемости определенного ученика.

.1.3 Временные характеристики:

Машинная обработка данных составляет несколько секунд.

Требования к надежности

В период опытной эксплуатации правильность работы системы проверяется тестовым вводом исходных данных.

Требования к условиям эксплуатации

Программа ориентирована на минимальные требования к компьютерной подготовке пользователей.

Требования к составу и параметрам технических средств

Тип процессора: Intel Pentium 4 2.0 Ghz / AMD XP 2200+, 512 Мб ОЗУ, 128 MB DirectX® 8.0 совместимая карта / nVIDIA® GeForce™ 5700 / ATI Radeon® 9600, DirectX® 9.0 совместимая звуковая карта.

Требования к информационной и программной совместимости

Информационные структуры на входе и выходе:

ОС Windows XP (Service Pack 2) / 2000 SP4 / Vista/ 7;

Microsoft Office 2007 и выше.

Методы решения:

Построение СУБД на основе инфологической и датологической модели предметной области.

.5.3.Языки программирования и программные средства, используемые в программе

Определяются на этапе эскизного проектирования.

.6.Требования к упаковке, маркировке, транспортировке и хранению

Отсутствуют.

Требования к программной документации

Состав программной документации:

руководство пользователя;

листинг программы.

Технико-экономические показатели разрабатываются в экономической части проекта.

Стадии и этапы разработки

Определяются в соответствии с регламентом разработки дипломного проекта.

Порядок контроля и приемки

Общие требования к приемке работ:

поэтапный контроль со стороны руководителя проекта;

тестирование программных модулей;

опытная эксплуатация.

3. ПРОЕКТИРОВАНИЕ И МЕТОДЫ РЕАЛИЗАЦИИ

.1 Постановка задачи

Необходимо создать базу данных, которая бы автоматизировала работу бухгалтерского отдела по учету оплаты учеников, и административного отдела по учету успеваемости учеников.

База данных должна содержать следующие функции:

ведение списка учеников, заключивших контракт на обучение с указанием даты заключения договора и его номера;

ведение списка учебных курсов и списка групп с указанием стоимости обучения на них;

учет оплаты, включая ведение списка учеников-должников;

ведение списка учеников с указанием краткой информации;

обеспечение ввода, обработки и хранение сведений об оплатах;

формирование отчетных форм;

учет текущей успеваемости учеников;

учет общей успеваемости за весь период обучения;

расширяемость системы, то есть возможность её доработки в случае повышения требований к автоматизированной системе.

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

содержать информацию об учениках;

содержать информацию о должниках по оплате с указанием долга;

кнопки, которые позволяли бы редактировать данные;

кнопки быстрого доступа к формам ввода, получения различных отчетов и анализа информации.

3.2 Проектирование системы

Для создания полноценной базы данных необходимо её спроектировать. Проектирование нужно в первую очередь для того, чтобы в дальнейшем можно было оптимизировать программу, избежать непредвиденных осложнений в процессе написания кода.

Проектирование осуществлялось с помощью программного комплекса Microsoft Access.

.2.1 Универсальное отношение

Анализ предметной области заканчивается созданием Универсального отношения, включающим в себя все собранные атрибуты, выделенные информационными требованиями всех категорий пользователей, а так же домены всех атрибутов, ограничения и типы данных.

Таблица 3.1. Атрибуты.

Название атрибута

Содержание

Типы данных

Ограничения и домены

Код_города

Код города

Счетчик

Not null

Город

Текст (50)

Not null,

ФИО

Фамилия имя отчество

Текст (50)

Not null

Код_улицы

Код улицы

Длинное целое

Not null

Номер_дома

Номер дома

Длинное целое

Not null

Корпус

Корпус

Текст (50)

Not null

Квартира

Квартира

Длинное целое

Not null

Дата_рождения

Дата рождения

Дата/время

Not null

Улица

Улица

Текст (50)

Not null

Код_дисциплины_план

Код дисциплины по плану

Счетчик

Not null

Номер_экз_вед

Номер экзаменационной ведомости

Длинное целое

Not null

Дата_экз_вед

Дата экзаменационной ведомости

Дата/время

Not null

Код_дисциплины

Код дисциплины

Счетчик

Not null

Дисциплина

дисциплина

Текст (50)

Not null,

Код_группы

Код группы

Счетчик

Not null

Группа

Название группы

Текст (50)

Not null

Код_формы

Код формы обучения

Счетчик

Not null

Форма

Форма обучения

Текст

Not null

Месяц

Месяц обучения

Длинное целое

Not null

Номер_квитанции

Номер квитанции

Длинное целое

Not null

Код_ученика

Код ученика

Длинное целое

Not null

Дата_оплаты

Дата оплаты

Дата/время

Not null

Сумма

Сумма оплаты

Денежный

Not null

Номер_приказа

Номер приказа о зачислении

Длинное целое

Not null

Дата_приказа

Дата приказа о зачислении

Дата/время

Not null

Номер_договора

Номер договора об оплате

Длинное целое

Not null

Дата_договора

Дата договора об оплате

Дата/время

Not null,

Номер_приказа_перевода

Номер приказа о переводе в другую группу

Длинное целое

Not null

Дата_приказа

Дата приказа о переводе в другую группу

Дата/время

Not null

Номер_приказа_перевода

Номер приказа о переводе в другое полугодие

Длинное целое

Not null

Дата_приказа

Дата приказа о переводе в другое полугодие

Дата/время

Not null

Номер_приказа_стоимости

Номер приказа стоимости

Длинное целое

Not null

Дата_приказа_стоимости

Дата приказа стоимости

Дата/время

Not null

Дата_начала

Дата начала действия

Дата/время

Not null

Дата_окончания

Дата окончания действия

Дата/время

Not null

Номер_приказа_отчислен

Номер приказа об отчислении

Длинное целое

Not null

Код_стоимости

Код стоимости

Счетчик

Not null

Стоимость

Стоимость

Денежный

Not null

Краткое_наименование

Краткое наименование группы

Текст (50)

Not null

Дата_приказа_отчисл

Дата приказа об отчислении

Дата/время

Not null

Номер_приказа

Номер приказа

Длинное целое

Not null

Номер_ведомости

Номер ведомости

Длинное целое

Not null

Результат

Результат сдачи предмета

Текст (50)

Not null Перечисляемый тип: 2,3,4,5, зачет, не зачет


В результате анализа предметной области было собрано 43 атрибута

.2.2 Инфологическая модель «Сущность-Связь»

Сущности:

Улицы (Код_улицы, Улица);

Форма обучения (Код_формы, форма);

Город (Код_города, город);

Дисциплины (Код_дисциплины, дисциплина).

Связи:

. Ученик (Код_ученика, ФИО, код_города, код_улицы, дата_рождения, номер_дома, корпус, квартира)

[Город][Улицы]

. Группа (Код_группы, группа, краткое_наименование) [Группа]

. Оплата (Номер_квитанции, дата_оплаты, месяц, сумма, код_ученика) [Ученик]

. Приказ об отчислении (Номер_приказа_отчислен, дата_приказа_отчисл, код_ученика)[ Ученик]

. Приказ о стоимости (Номер_приказа_стоимости, дата_приказа_стоимости, дата_начала, дата_окончания, код_группы, код_формы) [Группа] [Форма обучения]

. Стоимость обучения (Код_стоимости, месяц, стоимость, номер_приказа_стоимости) [Приказ о стоимости]

. Приказ о зачислении (Номер_приказа, дата_приказа, номер_договора, дата_договора, №зачетн_книжки, код_ученика, код_группы, код_формы) [Ученик] [Группа] [Форма обучения]

. Приказ о переводе в другую группу (Номер_приказа_перевод, дата_приказа, код_ученика, код_группы, код_формы) [Ученик] [Группа] [Форма обучения]

. Приказ о переводе в следующее полугодие (Номер_приказа_перевод, дата_приказа, полугодие, код_группы,) [Группа]

. Учебный план (Код_дисциплины_план, месяц, код_дисциплины, код_формы, код_группы) [Дисциплины] [Группа] [Форма обучения]

. Экзаменационная ведомость (Номер_экз_вед, дата_экз_вед, код_дисциплины_план) [Учебный план]

. Состав приказа о переводе [Ученик N, Приказ о переводе в следующее полугодие M](Код_ученика, номер_приказа_перевод)

. Состав экзаменационной ведомости [Ученик N, Экзаменационная ведомость M](Код_ученика, номер_экз_вед, результат).

.2.3 Описание даталогической модели на SQLTABLE 'УЛИЦЫ' (

Код_улицы         INTEGER NOT NULL,

Улицы CHAR (50) NOT NULL,KEY (Код_улицы));TABLE 'ДИСЦИПЛИНЫ' (

Код_дисциплины INTEGER NOT NULL,

Дисциплины CHAR (50) NOT NULL,KEY (Код_дисциплины));TABLE 'ГОРОД' (

Код_города INTEGER NOT NULL,

Город CHAR (50) NOT NULL,KEY (Код_группы));TABLE 'ФОРМА ОБУЧЕНИЯ' (

Код_формы INTEGER NOT NULL,

Форма CHAR (50) NOT NULL,KEY (Код_формы));TABLE 'УЧЕНИК' (

Код_ученика INTEGER NOT NULL,

ФИО CHAR (50) NOT NULL,

Номер_дома INTEGER NOT NULL,

Корпус CHAR (50) NOT NULL,

Квартира INTEGER NOT NULL,

Дата_рождения DATETIME NOT NULL,       KEY (Код_ученика));KEY (Код_улицы) REFERENCES УЛИЦЫDELETE RESTRICT,UPDATE CASCADE,KEY (Код_города) REFERENCES ГОРОДDELETE RESTRICT,UPDATE CASCADE);TABLE 'ГРУППЫ' (

Код_группы INTEGER NOT NULL,

Группа CHAR (50) NOT NULL,

Краткое_наименование CHAR (50) NOT NULL,KEY (Код_группы)),DELETE RESTRICT,UPDATE CASCADE,);TABLE 'ОПЛАТА' (

Номер_квитанции INTEGER NOT NULL,

Дата_оплаты DATETIME NOT NULL, 

Месяц INTEGER NOT NULL,

Сумма CURRENCY NOT NULL,  KEY (Номер_квитанции)),KEY (Код_ученика) REFERENCES УЧЕНИКDELETE RESTRICT,UPDATE CASCADE);

CREATE TABLE 'ПРИКАЗ О ЗАЧИСЛЕНИИ' (

Номер_приказа INTEGER NOT NULL,

Дата_приказа DATETIME NOT NULL,

Номер_договора INTEGER NOT NULL,

Дата_договора DATETIME NOT NULL,

№ученика INTEGER NOT NULL, KEY (Номер_приказа)),KEY (Код_ученика) REFERENCES УЧЕНИКDELETE RESTRICT,UPDATE CASCADEKEY (Код_группы) REFERENCES ГРУППАDELETE RESTRICT,UPDATE CASCADE,KEY (Код_формы) REFERENCES ФОРМА ОБУЧЕНИЯDELETE RESTRICT,UPDATE CASCADE);

CREATE TABLE 'ПРИКАЗ ОБ ОТЧИСЛЕНИИ' (

Номер_приказа_отчислен INTEGER NOT NULL,

Дата_приказа_отчисл DATETIME NOT NULL,KEY (Номер_приказа_отчислен)),

FOREIGN KEY (Код_ученика) REFERENCES УЧЕНИКDELETE RESTRICT,UPDATE CASCADE);

CREATE TABLE 'ПРИКАЗ О СТОИМОСТИ' (

Номер_приказа_стоимости INTEGER NOT NULL,

Дата_приказа_стоимости DATETIME NOT NULL,

Дата_начала DATETIME NOT NULL,

Дата_окончания DATETIME NOT NULL,

PRIMARY KEY (Номер_приказа_стоимости)),

FOREIGN KEY (Код_группы) REFERENCES ГРУППАDELETE RESTRICT,UPDATE CASCADE,KEY (Код_формы) REFERENCES ФОРМА ОБУЧЕНИЯDELETE RESTRICT,UPDATE CASCADE);

CREATE TABLE 'СТОИМОСТЬ ОБУЧЕНИЯ' (

Код_стоимости INTEGER NOT NULL,

Стоимость CURRENCY NOT NULL,

Месяц INTEGER NOT NULL,

PRIMARY KEY (Код_стоимости)),KEY (Номер_приказа_стоимости) REFERENCES ПРИКАЗ О СТОИМОСТИ

ON DELETE RESTRICT,UPDATE CASCADE);

CREATE TABLE 'ПРИКАЗ О ПЕРЕВОДЕ В ДРУГУЮ ГРУППУ (

Номер_приказа_перевод INTEGER NOT NULL,

Дата_приказа_перевод DATETIME NOT NULL,KEY (Номер_приказа_перевод)),

FOREIGN KEY (Код_ученика) REFERENCES УЧЕНИКDELETE RESTRICT,UPDATE CASCADEKEY (Код_группы) REFERENCES ГРУППАDELETE RESTRICT,UPDATE CASCADE,KEY (Код_формы) REFERENCES ФОРМА ОБУЧЕНИЯDELETE RESTRICT,UPDATE CASCADE);

CREATE TABLE 'ПРИКАЗ О ПЕРЕВОДЕ В СЛЕДУЮЩЕЕ ПОЛУГОДИЕ' (

Номер_приказа_перевод INTEGER NOT NULL,

Дата_приказа DATETIME NOT NULL,

Полугодие INTEGER NOT NULL,KEY (Номер_приказа_перевод)),KEY (Код_группы) REFERENCES ГРУППАDELETE RESTRICT,UPDATE CASCADE);TABLE 'УЧЕБНЫЙ ПЛАН' (

Код_дисциплины_план INTEGER NOT NULL,

Месяц INTEGER NOT NULL,KEY (Код_дисциплины_план)),KEY (Код_дисциплины) REFERENCES ДИСЦИПЛИНЫDELETE RESTRICT,UPDATE CASCADEKEY (Код_группы) REFERENCES ГРУППАDELETE RESTRICT,UPDATE CASCADE,KEY (Код_формы) REFERENCES ФОРМА ОБУЧЕНИЯDELETE RESTRICT,UPDATE CASCADE);TABLE 'ЭКЗАМЕНАЦИОННАЯ ВЕДОМОСТЬ' (

Номер_экз_вед INTEGER NOT NULL,

Дата_экз_вед DATETIME NOT NULL,KEY (Номер_экз_вед)),KEY (Код_дисциплины_план) REFERENCES УЧЕБНЫЙ ПЛАНDELETE RESTRICT,UPDATE CASCADE);

CREATE TABLE 'СОСТАВ ПРИКАЗА О ПЕРЕВОДЕ' (

Номер_приказа_перевод INTEGER NOT NULL,

Код_ученика INTEGER NOT NULL,

PRIMARY KEY (Код_ученика, номер_приказа_перевод));TABLE 'СОСТАВ ЭКЗАМЕНАЦИОННОЙ ВЕДОМОСТИ' (

Код_ученика INTEGER NOT NULL,

Результат CHAR (50) NOT NULL,

Номер_экз_вед INTEGER NOT NULL,

PRIMARY KEY (Код_ученика, Номер_экз_вед));

база данный учет запрос

3.2.4 Проведение нормализации таблиц

Все таблицы, состоящие из одного или двух атрибутов - автоматически находятся в нормальной форме Бойса - Кодда. Такими таблицами являются: ГОРОД, УЛИЦЫ, ФОРМА ОБУЧЕНИЯ, ДИСЦИПЛИНЫ, ГРУППЫ.

У всех остальных таблиц, для доказательства того, что в этих таблицах любые функциональные зависимости сводятся к полной функциональной зависимости от возможного ключа.

Таблица 3.2. Ученик.

Таблица УЧЕНИК

Возможный ключ

Код_ученика

Функциональные зависимости: Код_ученика => ФИО, Код_ученика => Номе_дома, Код_ученика =>Корпус, Код_ученика =>квартира, Код_ученика =>Дата_рождения, Код_ученика =>Код_города, Код_ученика =>Код_улицы, Данная таблица находится в НФБК.


Таблица 3.3. Приказ об отчислении.

Таблица ПРИКАЗ ОБ ОТЧИСЛЕНИИ

Возможный ключ

Номер_приказа_отчислен

Функциональные зависимости: Номер_приказа_отчислен =>дата_приказа_отчисл,  Номер_приказа_отчислен =>Код_ученика, Данная таблица находится в НФБК.


Таблица 3.6. Приказ о стоимости.

Таблица ПРИКАЗ О СТОИМОСТИ

Возможный ключ

Номер_приказа_стоимости

Функциональные зависимости: Номер_приказа_стоимости => Дата_приказа_стоимости, Номер_приказа_стоимости => Дата_начала, Номер_приказа_стоимости => Дата_окончания,  Номер_приказа_стоимости => Код_группы,  Номер_приказа_стоимости => Код_формы, Данная таблица находится в НФБК.


Таблица 3.7. Стоимость обучения.

Таблица СТОИМОСТЬ ОБУЧЕНИЯ

Возможный ключ

Код_стоимости

Функциональные зависимости: Код_стоимости => Номер_приказа_стоимости, Код_стоимости => Месяц, Код_стоимости => Стоимость,  Данная таблица находится в НФБК.


Таблица 3.8. Приказ о переводе в другую группу.

Таблица ПРИКАЗ О ПЕРЕВОДЕ В ДРУГУЮ ГРУППУ

Возможный ключ

Номер_приказа_перевод

Функциональные зависимости: Номер_приказа_перевод => Дата_приказа, Номер_приказа_перевод => Код_ученика, Номер_приказа_перевод => Код_группы,  Номер_приказа_перевод => Код_формы, Данная таблица находится в НФБК.


Таблица 3.9 Приказ о переводе в следующее полугодие.

Таблица ПРИКАЗ О ПЕРЕВОДЕ В СЛЕДУЮЩЕЕ ПОЛУГОДИЕ

Возможный ключ

Номер_приказа_перевод

Функциональные зависимости: Номер_приказа_перевод => Дата_приказа_перевод, Номер_приказа_перевод => Полугодие, Номер_приказа_перевод => Код_группы,  Данная таблица находится в НФБК.


Таблица 3.12. Состав экзаменационной ведомости.

Таблица СОСТАВ ЭКЗАМЕНАЦИОННОЙ ВЕДОМОСТИ

Возможный ключ

Код_ученика, Номер_экз_вед

Функциональные зависимости: Код_ученика, Номер_экз_вед => Результат, Данная таблица находится в НФБК.


Каждая таблица в проектируемой БД действительно находится в НФБК, так как любая ФЗ между ее атрибутами сводится к полной ФЗ от возможного ключа.

Выполнение требований нормализации обеспечивает построение канонической модели и создание на ее основе реляционной базы данных без дублирования описательных данных, а также возможность автоматического поддержания связной целостности данных средствами СУБД при обновлении БД (добавлении и удалении записей, изменении значений в ключевых полях).

.2.5 Схема данных

Рис 3.1. Схема данных.


.2.6 Проектирование интерфейса системы

При загрузке базы данных «Учет оплаты за обучение и учет успеваемости учеников МБОУ ДОД «ДШХ» НГО» появляется главная форма (Рис 3.2), которая дает возможность быстрого доступа к формам ввода, получения различных отчетов и анализа информации.

Рис 3.2. Главная страница базы данных.

В верхнем левом углу содержится информация о должниках по оплате обучения с указанием величины долга. При нажатии на ФИО ученика будет создан отчет по оплате обучения данным учеником.

Соседний правый блок содержит различную информацию об ученике. Ученика следует выбрать из списка. Если этого сделано не будет, то все формы и отчеты будут открыты для всех учеников школы. Правый блок на главной форме - «Документы». Он создан для быстрого доступа к формам ввода документов.

В блоке «Просмотр» содержатся ссылки на различные отчеты и запросы. В нижней части расположен элемент управление с вкладками. На вкладках находятся различные диаграммы, которые позволяют наглядно оценить ситуацию в школе.

Кнопка «Ввод дополнительной информации» откроет форму, дающую доступ к различным формам ввода.

.2.7 Проектирование запросов

. Запрос: ГРУППЫ УЧЕНИКОВ показывает в какой группе учится ученик:[Ученик и месяц].Код_ученика, Ученик.ФИО, Группа!Краткое_наименование & Round([Ученик и месяц]![Текущий месяц]/2+0.1,0) & "0" & [Форма обучения]!Код_формы AS Номер_гр(((Ученик INNER JOIN [Ученик и месяц] ON Ученик.Код_ученика = [Ученик и месяц].Код_ученика) INNER JOIN [Вспомагательный запрос текущей группы] ON Ученик.Код_ученика = [Вспомагательный запрос текущей группы].Код_ученика) INNER JOIN [Форма обучения] ON [Вспомагательный запрос текущей группы].Форма = [Форма обучения].Код_формы) INNER JOIN Группа ON [Вспомагательный запрос текущей группы].Груп = Группа.Код_группы(((Ученик.Код_ученика) Not In (SELECT [Приказ об отчислении].Код_ученика FROM [Приказ об отчислении]; )))BY Группа!Краткое_наименование & Round([Ученик и месяц]![Текущий месяц]/2+0.1,0) & "0" & [Форма обучения]!Код_формы;

. Запрос: ДОЛЖНИКИ демонстрирует учеников, у которых имеется задолжность по оплате за обучение:[Оплата за обучение сумма].Код_ученика, [Оплата за обучение сумма].ФИО, [Сумма план]-IIf([Сумма факт] Is Null,0,[Сумма факт]) AS Долг[Оплата за обучение сумма]((([Сумма план]-IIf([Сумма факт] Is Null,0,[Сумма факт]))>0));

. Запрос: ДЛЯ ПОДГОТОВКИ ЭКЗАМЕНАЦИОННОЙ ВЕДОМОСТИ предназначен для создания отчета

«Экзаменационная ведомость - подготовка »:[Учебный план].Код_дисциплины_план, [Учебный план].Код_дисциплины, [Учебный план].Код_группы AS [Учебный план_Код_группы], [Учебный план].месяц, [Ученик и месяц].ФИО, Группы.Группа, Дисциплина.Дисциплина, [Форма обучения].Форма, [Учебный план].Код_формы_обучения[Форма обучения] INNER JOIN (Группа INNER JOIN (Дисциплина INNER JOIN (([Учебный план] INNER JOIN [Ученик и месяц] ON [Учебный план].Месяц = [Ученик и месяц].[Текущий семестр]) INNER JOIN [Приказ о зачислении] ON [Ученик и месяц].Код_ученика = [Приказ о зачислении].Код_ученика) ON Дисциплина.Код_дисциплины = [Учебный план].Код_дисциплины) ON (Группа.Код_группы = [Учебный план].Код_группы) AND (Группа.Код_группы = [Приказ о зачислении].Код_группы)) ON ([Форма обучения].Код_формы = [Учебный план].Код_формы_обучения) AND ([Форма обучения].Код_формы = [Приказ о зачислении].Код_формы_обуч);

. Запрос: ИСТОРИЯ УЧЕНИК И МЕСЯЦ предоставляет информацию, в какие месяца учился и в данный момент учится ученик. [Вспомогательный запрос: ученик, перевод].Код_ученика, [Вспомогательный запрос: ученик, перевод].ФИО, (IIf([Месяц] Is Null,1,[Месяц])) AS [Текущий месяц], [Приказ о переводе в следующее полугодие].Дата_приказа_перевод AS [Дата перевода], [Приказ о переводе в следующее полугодие].Код_группы, [Приказ о зачислении].Код_формы_обуч(([Вспомогательный запрос: ученик, перевод] LEFT JOIN [Приказ о переводе в следующее полугодие] ON [Вспомогательный запрос: ученик, перевод].Номер_приказа = [Приказ о переводе в следующее полугодие].Номер_приказа_перевод) INNER JOIN [Приказ о зачислении] ON [Вспомогательный запрос: ученик, перевод].Код_ученика = [Приказ о зачислении].Код_ученика) LEFT JOIN [Приказ о переводе в следующее полугодие] ON [Вспомогательный запрос: ученик, перевод].Код_ученика = [Приказ о переводе в другую группу].Код_ученикаBY [Вспомогательный запрос: ученик, перевод].Код_ученика, [Вспомогательный запрос: ученик, перевод].ФИО, (IIf ([Месяц] Is Null,1,[Месяц])), [Приказ о переводе в следующее полугодие].Дата_приказа_перевод, [Приказ о переводе в следующее полугодие].Код_группы, [Приказ о зачислении].Код_формы_обуч((([Вспомогательный запрос: ученик, перевод].Код_ученика) Not In (SELECT [Приказ об отчислении].Код_ученика FROM [Приказ об отчислении]; )))BY [Вспомогательный запрос: ученик, перевод].ФИО;

. Запрос ИСТОРИЯ УЧЕНИК И МЕСЯЦ - в т.ч. отчисленные: предоставляет информацию, в какие месяцы учился и в данный момент учится ученик, и учеников которые были отчислены.[Вспомогательный запрос: ученик, перевод].Код_ученика, [Вспомогательный запрос: ученик, перевод].ФИО, (IIf([Месяц] Is Null,1,[Месяц])) AS [Текущий месяц], [Приказ о переводе в следующее полугодие].Дата_приказа_перевод AS [Дата перевода], [Приказ о переводе в следующее полугодие].Код_группы, [Приказ о зачислении].Код_формы_обуч(([Вспомогательный запрос: ученик, перевод] LEFT JOIN [Приказ о переводе в следующее полугодие] ON [Вспомогательный запрос: ученик, перевод].Номер_приказа=[Приказ о переводе в следующее полугодие].Номер_приказа_перевод) INNER JOIN [Приказ о зачислении] ON [Вспомогательный запрос: ученик, перевод].Код_ученика=[Приказ о зачислении].Код_ученика) LEFT JOIN [Приказ о переводе в другую группу] ON [Вспомогательный запрос: ученик, перевод].Код_ученика=[Приказ о переводе в другую группу].Код_ученикаBY [Вспомогательный запрос: ученик, перевод].Код_ученика, [Вспомогательный запрос: ученик, перевод].ФИО, (IIf ([Месяц] Is Null,1,[Месяц])), [Приказ о переводе в следующее полугодие].Дата_приказа_перевод, [Приказ о переводе в следующее полугодие].Код_группы, [Приказ о зачислении].Код_формы_обучBY [Вспомогательный запрос: ученик, перевод].ФИО;

. Запрос ОПЛАТА ЗА ОБУЧЕНИЕ ПЛАН демонстрирует, сколько ученик должен заплатить за обучение.[История Ученик и месяц - втч отчисленные].Код_студента, [История Ученик и месяц - втч отчисленные].ФИО, [Стоимость обучения].Стоимость, [Стоимость обучения].Месяц, IIf ([Стоимость обучения]! Месяц =1 Or [Стоимость обучения]!Месяц =3 Or [Стоимость обучения]! Месяц =5 Or [Стоимость обучения]! Месяц =7 Or [Стоимость обучения]! Месяц =9,[Дата_опл_13579],[Дата_опл_246810]) AS [Срок оплаты], [История Ученик и месяц - втч отчисленные]!Код_ученика & "0000" & [Месяц] AS Код_опл, [Форма обучения].Форма, Группы.Группа[Форма обучения] INNER JOIN ((Группа INNER JOIN (([История Ученик и месяц - втч отчисленные] INNER JOIN [Приказ о стоимости] ON ([История Ученик и месяц - втч отчисленные].Код_группы = [Приказ о стоимости].Код_группы) AND ([История Ученик и месяц - втч отчисленные].Код_формы_обуч = [Приказ о стоимости].Код_формы)) INNER JOIN [Стоимость обучения] ON ([Приказ о стоимости].Номер_приказа_стоимости = [Стоимость обучения].Номер_приказа) AND ([История Ученик и месяц - втч отчисленные].[Текущий месяц] = [Стоимость обучения].Месяц) ON (Группы.Код_группы = [Приказ о стоимости].Код_группы) AND (Группы.Код_группы = [История Ученик и месяц - втч отчисленные].Код_группы)) INNER JOIN Контрактники ON [История Ученик и месяц - втч отчисленные].Код_ученика = Контрактники.Код_ученика) ON [Форма обучения].Код_формы = [Приказ о стоимости].Код_формы((([Приказ о стоимости].Дата_начала)<([Дата перевода]+100)) AND (([Приказ о стоимости].Дата_окончания)>([Дата перевода]+100)))BY [История Ученик и месяц - втч отчисленные].ФИО, [Стоимость обучения].Месяц;

. Запрос ОПЛАТА ЗА ОБУЧЕНИЕ ФАКТ показывает, сколько ученик уже заплатил за обучение.[История Ученик и месяц - втч отчисленные].Код_ученика, [История Ученик и месяц - втч отчисленные].ФИО, Оплата.Cумма, [Стоимость обучения].Стоимость, Оплата.Дата_оплаты, Оплата.Месяц, IIf(Оплата! Месяц=1 Or Оплата! Месяц 3 Or Оплата! Месяц 5 Or Оплата! Месяц 7 Or Оплата! Месяц 9, [Дата_опл_13579], [Дата_опл_246810]) AS [Срок оплаты], IIf([Дата_оплаты]-[Срок оплаты]>0, [Дата_оплаты]-[Срок оплаты],"") AS [Просрочка(дней)], [История Ученик и месяц - втч отчисленные]!Код_ученика & "0000" & Оплата!Месяц AS Код_опл([История Ученик и месяц - втч отчисленные] INNER JOIN [Приказ о стоимости] ON ([История Ученик и месяц - втч отчисленные].Код_формы_обуч = [Приказ о стоимости].Код_формы) AND ([История Ученик и месяц - втч отчисленные].Код_группы = [Приказ о стоимости].Код_группы)) INNER JOIN (Оплата INNER JOIN [Стоимость обучения] ON Оплата.Месяц = [Стоимость обучения].Месяц) ON ([Приказ о стоимости].Номер_приказа_стоимости = [Стоимость обучения].Номер_приказа) AND ([История Ученик и месяц - втч отчисленные].[Текущий месяц] = [Стоимость обучения].Месяц) AND ([История Ученик и месяц - втч отчисленные].Код_ученика = Оплата.Код_ученика)((([Приказ о стоимости].Дата_начала)<[Дата_оплаты]) AND (([Приказ о стоимости].Дата_окончания)>[Дата_оплаты]))BY [История Ученик и месяц - втч отчисленные].Код_ученика, Оплата.Дата_оплаты;

. Запрос ОПЛАТА ЗА ОБУЧЕНИЕ СУММА отображает информацию о том, сколько ученик уплатил денежных средств за время своего обучения.[Оплата обучения план].Код_ученика, [Оплата обучения план].ФИО, Sum ([Оплата обучения план].Стоимость) AS [Сумма план], Sum ([Оплата обучения факт].Сумма) AS [Сумма факт][Оплата обучения план] LEFT JOIN [Оплата обучения факт] ON [Оплата обучения план].Код_опл = [Оплата обучения факт].Код_оплBY [Оплата обучения план].Код_ученика, [Оплата обучения план].ФИО;

. Запрос ОПЛАТА ИТОГИ предоставляет информацию обо всех оплатах ученика и показывает, на сколько дней ученик просрочил оплату.[Оплата обучения план].Код_ученика, [Оплата обучения план].ФИО, [Оплата обучения план].Месяц, [Оплата обучения план].Стоимость, [Оплата обучения факт].Cумма, [Оплата обучения факт].Дата_оплаты, IIf([Cумма] Is Null,Round(Now()-[Оплата обучения план]![Срок оплаты],0),[Просрочка(дней)]) AS Просрочка, [Оплата обучения план].Форма, [Оплата обучения план].Группа[Оплата обучения план] LEFT JOIN [Оплата обучения факт] ON [Оплата обучения план].Код_опл = [Оплата обучения факт].Код_опл;

. Запрос ОТЧИСЛЕННЫЕ выводит информацию об учениках, которые были отчислены.[Приказ об отчислении].Номер_приказа_отчислен, [Приказ об отчислении].Дата_приказ_отчисл, [История Ученик и месяц - втч отчисленные].Код_ученика, Last ([История Ученик и месяц - втч отчисленные].[Текущий месяц]) AS [Last-Текущий месяц], [История Ученик и месяц - втч отчисленные].ФИО, Группы.Группа, [Форма обучения].ФормаГруппа INNER JOIN ([Приказ об отчислении] INNER JOIN ((Группа INNER JOIN [История Ученик и месяц - втч отчисленные] ON Группы.Код_группы = [История Ученик и месяц - втч отчисленные].Код_группы) INNER JOIN [Форма обучения] ON [История Ученик и месяц - втч отчисленные].Код_формы_обуч = [Форма обучения].Код_формы) ON [Приказ об отчислении].Код_ученика = [История Ученик и месяц - втч отчисленные].Код_ученика)BY [Приказ об отчислении].Номер_приказа_отчислен, [Приказ об отчислении].Дата_приказ_отчисл, [История Ученик и месяц - втч отчисленные].Код_ученика, [История Ученик и месяц - втч отчисленные].ФИО, Группы.Группа, [Форма обучения].Форма;

. Запрос ПЕРЕВОД В ДРУГУЮ ГРУППУ предназначен для создания отчета «Приказ о переводе в другую группу».[Приказ о переводе в другую группу].Номер_приказа_перевод, [Приказ о переводе в другую группу].Дата_приказа, [История Ученик и месяц - втч отчисленные].ФИО, [История Ученик и месяц - втч отчисленные].[Текущий месяц], [Форма обучения].Форма, Группы.Группа[Форма обучения] INNER JOIN (Группа INNER JOIN ([История Ученик и месяц - втч отчисленные] INNER JOIN [Приказ о переводе в другую группу] ON [История Ученик и месяц - втч отчисленные].Код_ученика = [Приказ о переводе в другую группу].Код_ученика) ON Группы.Код_группа = [Приказ о переводе в другую группу].Код_группы) ON [Форма обучения].Код_формы = [Приказ о переводе в другую группу].Код_формы((([Приказ о переводе в другую группу].Дата_приказа)=[Дата перевода]));

. Запрос СДАННЫЕ ПРЕДМЕТЫ (ПЛАН) показывает информацию о сданных предметах.[История Ученик и месяц].Код_ученика, [История Ученик и месяц].ФИО, [Учебный план].Месяц, [Учебный план].Код_группы, [Учебный план].Код_формы_обучения, [Учебный план].Код_дисциплины_план, [Учебный план].Код_дисциплины, Дисциплина.ДисциплинаДисциплина INNER JOIN ([Учебный план] INNER JOIN [История Ученик и месяц] ON ([Учебный план].Код_формы_обучения = [История Ученик и месяц].Код_формы_обуч) AND ([Учебный план].Месяц = [История Ученик и месяц].[Текущий месяц]) AND ([Учебный план].Код_группы = [История Ученик и месяц].Код_группы)) ON Дисциплина.Код_дисциплины = [Учебный план].Код_дисциплиныBY [История Ученик и месяц].ФИО, [Учебный план].Месяц;

. Запрос Ученик и месяц предоставляет информацию, в каком месяце учится ученик в данный момент.[Вспомогательный запрос: ученик, перевод].Код_ученика, [Вспомогательный запрос: ученик, перевод].ФИО, Max ([Приказ о переводе в следующие полугодие].Месяц) AS [Текущий месяц], Max ([Приказ о переводе в следующие полугодие].Дата_приказа_перевод) AS [Дата перевода], IIf ([Last-Код_группы] Is Null,[Приказ о зачислении]!Код_группы,[Last-Код_группы]) AS Код_сп(([Вспомогательный запрос: ученик, перевод] LEFT JOIN [Приказ о переводе в следующие полугодие] ON [Вспомогательный запрос: ученик, перевод].Номер_приказа=[Приказ о переводе в следующие полугодие].Номер_приказа_перевод) INNER JOIN [Приказ о зачислении] ON [Вспомогательный запрос: ученик, перевод].Код_ученика=[Приказ о зачислении].Код_ученика) INNER JOIN [Вспомагательный запрос последней группы] ON [Вспомогательный запрос: ученик, перевод].Код_ученика=[Вспомагательный запрос последней группы].Код_ученикаBY [Вспомогательный запрос: ученик, перевод].Код_ученика, [Вспомогательный запрос: ученик, перевод].ФИО, IIf([Last-Код_группы] Is Null,[Приказ о зачислении]!Код_группы,[Last-Код_группы])((([Вспомогательный запрос: ученик, перевод].Код_ученика) Not In (SELECT [Приказ об отчислении].Код_ученика FROM [Приказ об отчислении]; )))BY [Вспомогательный запрос: ученик, перевод].ФИО;

. Запрос ТЕКУЩИЕ группы И ФОРМА ОБУЧЕНИЯ УЧЕНИКОВ демонстрирует, в какой группе и на какой форме обучения учится ученикУченик.Код_ученика, Ученик.ФИО, Группы.Группа, [Форма обучения].Форма(([Вспомагательный запрос текущей группы] INNER JOIN Ученик ON [Вспомагательный запрос текущей группы].Код_ученика = Ученик.Код_ученика) INNER JOIN Группа ON [Вспомагательный запрос текущей группы].Груп = Группы.Код_группы) INNER JOIN [Форма обучения] ON [Вспомагательный запрос текущей группы].Форма = [Форма обучения].Код_формы;

. Запрос УСПЕВАЕМОСТЬ показывает полную информацию об успеваемости учеников. [История Ученик и месяц - втч отчисленные].Код_ученика, [История Ученик и месяц - втч отчисленные].[Текущий месяц], [История Ученик и месяц - втч отчисленные].Код_группы, [История Ученик и месяц - втч отчисленные].Код_формы_обуч, [История Ученик и месяц - втч отчисленные].ФИО, [Состав экзаменационной ведомости].Результат, [Экзаменационная ведомость].Дата_экз_вед, [Экзаменационная ведомость].Номер_экз_вед, [Экзаменационная ведомость].Код_предм_план, Улица.Улица, Город.Город, Ученик.Номер_дома, Ученик.Корпус, Ученик.Квартира, Ученик.Дата_рождения, Группы.Группа AS Груп, [Форма обучения].Форма, Дисциплина.Дисциплина, [Группы учеников].Номер_гр[Форма обучения] INNER JOIN ((Улица INNER JOIN ((Дисциплина INNER JOIN (Город INNER JOIN ((Группа INNER JOIN (Ученик INNER JOIN ([Учебный план] INNER JOIN ([История Ученик и месяц - втч отчисленные] INNER JOIN [Состав экзаменационной ведомости] ON [История Ученик и месяц - втч отчисленные].Код_ученика = [Состав экзаменационной ведомости].Код_ученика) ON [Учебный план].Месяц = [История Ученик и месяц - втч отчисленные].[Текущий месяц]) ON (Ученик.Код_ученика = [История Ученик и месяц - втч отчисленные].Код_ученика) AND (Ученик.Код_ученика = [Состав экзаменационной ведомости].Код_ученика)) ON (Группы.Код_группы = [ История Ученик и месяц - втч отчисленные].Код_группы) AND (Группы.Код_группы = [Учебный план].Код_группы)) LEFT JOIN [Группы учеников] ON Ученик.Код_ученика = [Группы учеников].Код_ученика) ON Город.Код_города=Ученик.Код_города) ON Дисциплина.Код_дисциплины = [Учебный план].Код_дисциплины) INNER JOIN [Приказ о зачислении] ON Ученик.Код_ученика = [Приказ о зачислении].Код_ученика) ON Улица.Код_улицы = Ученик.Код_улицы) INNER JOIN [Экзаменационная ведомость] ON ([Учебный план].Код_дисциплины_план = [Экзаменационная ведомость].Код_предм_план) AND ([Экзаменационная ведомость].Номер_экз_вед = [Состав экзаменационной ведомости].Номер_ведомости)) ON [Форма обучения].Код_формы = [Учебный план].Код_формы_обучения;

.2.8 Проектирование форм

«Города» - форма позволяет вводить и просматривать информацию о городах.

Рис 3.3. Форма «Города».

«Дисциплина» - форма позволяет вводить и просматривать информацию о дисциплинах.

Рис 3.4. Форма «Дисциплина».

«Оплата за обучение» - форма предназначена для просмотра и ввода данных по оплате учеников.

Рис 3.5. Форма «Оплата обучения».

«Приказ о зачислении» - форма предназначена для внесения и просмотра информации о зачислении ученика в группу.

Рис 3.6. Форма «Приказ о зачислении».

«Приказ о переводе в другую группу» - форма показывает учеников, которые переводились в другую группу, и подготавливает отчет.

Рис 3.7. Форма «Приказ о переводе в другую группу».

«Приказ о переводе в следующее полугодие» - форма отображает список учеников, которые переводятся в следующее полугодие.

Рис 3.8. Форма «Приказ о переводе в следующее полугодие».

«Приказ о стоимости» - форма показывает стоимость обучения за учебный месяц для групп и форм обучения.

Рис 3.9. Форма «Приказ о стоимости».

«Ученик» - форма предназначена для просмотра и ввода данных об учениках, а также предоставляет полную информацию об оплатах ученика и его успеваемости.

Рис 3.10. Форма «Ученик».

«Учебный план» - форма показывает, в какой группе, в каком месяце и для какой формы обучения читается дисциплина.

Рис 3.11. Форма «Учебный план».


Рис 3.12. Форма «Экзаменационная ведомость».

«Группа» - форма позволяет вводить и просматривать информацию о группах.

Рис 3.13. Форма «Группа».

3.2.9 Проектирование отчетов

В разработанной системе для автоматизации отчетности были сгенерированы отчеты на основе форм и запросов. Отчеты позволяют выбрать из базы данных требуемую пользователем информацию и оформить ее в виде документов.

«Группы учеников» - отчет предназначен для просмотра информации о группах, в которых обучаются ученики. (Рис П.1)

«Карточка ученика - успеваемость» - отчет предназначен для просмотра информации о полной успеваемости ученика за период его обучения. (Рис П.2)

«Оплата обучения» - отчет показывает информацию обо всех оплатах ученика, которые он внес за период обучения. (Рис П.3)

«Приказ о зачислении» - отчет содержит информацию о зачислении ученика в учебное заведение. (Рис П.4)

«Приказ о переводе в другую группу» - отчет содержит информацию об учениках, которые были переведены в другую группу. (Рис П.5)

«Приказ о переводе в следующее полугодие» - отчет содержит информацию об учениках, которые были переведены в следующее полугодие. (Рис П.6)

«Приказ о стоимости» - отчет содержит информацию об установленной стоимости за период для определенной группы и формы обучения. (Рис П.7)

«Приказ об отчислении» - отчет содержит информацию об учениках, которые были отчислены из учебного заведения. (Рис П.8)

«Учебный план» - отчет показывает информацию об учебном процессе (какие дисциплины изучаются). (Рис П.9)

ЗАКЛЮЧЕНИЕ

Целью моей дипломной работы было оптимизировать работу административного отдела художественной школы, путем автоматизации учета оплаты за обучение и учета успеваемости учеников. Разработка дипломного проекта успешно завершена. Все поставленные задачи были выполнены. Была изучена организация баз данных. Выявлены следующие особенности:

среда Access может с успехом использоваться начинающими пользователями для познания секретов реляционных баз данных и увлекательных занятий по созданию несложных (поначалу) приложений;

перед тем, как создать базу данных, ее необходимо тщательно продумать. Изменение структуры базы на этапе эксплуатации системы очень трудоемко;

процесс внедрения программы в организацию является более быстрым и легким. Достаточно только скопировать базу данных на компьютер пользователя.

Гибкость среды разработки Microsoft Access 2010 позволила создать простой и эффективный интерфейс (по отзывам пользователей, тестировавших продукт). Такой интерфейс призван снизить нагрузку на эмоционально-психологическое состояние пользователя и ускорить работу пользователя с программой. Кроме того, интерфейс был упрощен до необходимого функционала, то есть пользователь будет видеть только те элементы интерфейса, которые необходимы ему в работе.

После внедрения программы на предприятие ускорился процесс ведения учета оплаты обучения. Бухгалтер затрачивает меньше времени на оформление еженедельных отчетных документов.

Исходя из вышесказанного, можно сделать вывод, что внедрение проекта помогло увеличить эффективность распределения рабочего времени на более важные задачи. Созданная программа позволяет оптимизировать работу пользователя, ускорить процесс формирования документов и отчетов, снизить затраты рабочего времени на действия, напрямую не относящиеся к должностным обязанностям.

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ И ЛИТЕРАТУРЫ

Бекаревич Ю. Б., Пушкина Н. В. Microsoft Access 2002. СПБ.: БХВ- Петербург, 2003.718 с.

Бойко В.В., Савинков В.М. Проектирование баз данных информационных систем. - М.: Финансы и статистика, 1989. - 351 с.

Буч Г. Объектно-ориентированное проектирование с примерами применения: Пер. с англ.-М.: Канкорд, 1992.

Голицина О.Л., Максимов Н.В., Попов И.И. Базы данных: Учебное пособие. - М.: ФОРУМ: ИНФРА-М, 2003. - 352 с.

Дейт К. Руководство по реляционной СУБД DB2. М.: Финансы и статистика, 1988.320 с.

Джексон Г. Проектирование реляционных баз данных для использования с микроЭВМ. -М.: Мир, 1991. - 252 с.

Карпова Т.С. Базы данных: модели, разработка, реализация. - СПб.: Питер, 2002. - 304 с.

Кириллов В.В. Структуризованный язык запросов (SQL). - СПб.: ИТМО, 1994. - 80 с.

Коннолли Т., Бегг К., Страчан А. База данных. Проектирование и сопровождение: Теория и практика. М.: Изд. Дом «Вильяме», 2000.1111с.

Корнеев И.К., Машурцов В.А. Информационные технологии в управлении. - М.: ИНФРА-М, 2001. - 158 с.

Плещёв В.В. Базы данных.Visual FoxPro, Access, SQL Server, Oracle с примерами и упражнениями: Екатеринбург 2007. 323 с.

Хаббард Дж. Автоматизированное проектирование баз данных. - М.: Мир, 1984. - 294 с.

Шарипова Н.Н. Теория и практика проектирования баз данных: Учеб. пособие. - Екатеринбург: Изд-во Урал. Ун-та, 2006. - 384 с.

Приложение 1

Отчеты

 

Рис П.1. Отчет «Группы учеников».

Рис П.2. Форма «Карточка ученика - успеваемость».

Рис П.3. Форма «Оплата обучения».

Рис П.4. Форма «Приказ о зачислении».

Рис П.5. Форма «Приказ о переводе в другую группу».

Рис П.6. Форма «Приказ о переводе в следующее полугодие».

Рис П.7. Форма «Приказ о стоимости».

Рис П.8. Форма «Приказ об отчислении».

Рис П.9. Форма «Учебный план».

Приложение 2

РУКОВОДСТВО ПОЛЬЗОВАТЕЛЮ

При загрузке базы данных «Учет оплаты за обучение и учет успеваемости учеников» появляется главная форма (Рис. 10), которая дает возможность быстрого доступа к формам ввода, получения различных отчетов и анализа информации.

Рис П.10. Главная страница базы данных.

В верхнем левом углу содержится информация о должниках по оплате обучения с указанием величины долга. При нажатии на ФИО ученика будет создан отчет по оплате обучения данным учеником.

Соседний правый блок содержит различную информацию об ученике. Ученика следует выбрать из списка. Если этого сделано не будет, то все формы и отчеты будут открыты для всех учеников школы. Из этого блока возможен быстрый доступ к форме внесения оплаты учеником - кнопка «Внесение оплаты», при нажатии кнопки откроется форма ввода (Рис П.11). Если данная форма открыта для конкретного ученика, выбранного в главной форме, то следует только внести необходимую информацию об оплате, в противном случае следует также выбрать ученика.

Рис П.11. Форма ввода оплаты обучения учеником.

Закрыв форму ввода, можно вернуться к главной форме. Кнопки «Отчет об оплате обучения» и «Отчет об успеваемости» выводят соответствующие отчеты (Рис П.12, Рис П.13).

Рис П.12. Отчет об оплате.

Рис П.13. Отчет об успеваемости.

При нажатии в главной форме кнопки «Редактировать данные» откроется форма ввода данных о выбранном ученике или обо всех учениках.

Правый блок на главной форме - «Документы». Он создан для быстрого доступа к формам ввода документов. Например, ссылка на форму «Приказ о зачислении». При нажатии откроется форма (Рис П.14)

Рис П.14. Форма ввода приказов о зачислении.

В верхней части формы необходимо выбрать группу, в которую будет зачислен человек. В табличной части следует ввести данные о приказе - номер, дату, ученика, которого зачисляют, номер и дату договора, форму обучения. После ввода можно нажать кнопку со значком принтера рядом с записью. При нажатии будет сформирована печатная форма приказа о зачислении (Рис П.15).

Рис П.15. Печатная форма приказа о зачислении.

Все формы ввода приказов содержат подобные кнопки, при нажатии которых будет сформирован печатный документ.

Вернемся к главной форме. В блоке «Просмотр» содержатся ссылки на различные отчеты и запросы. В нижней части расположен элемент управление с вкладками. На вкладках находятся различные диаграммы, которые позволяют наглядно оценить ситуацию в школе.

Кнопка «Ввод дополнительной информации» откроет форму, дающую доступ к различным формам ввода.

Рис П.16. Форма доступа к вспомогательным формам ввода.

Нажатие на выбранную кнопку откроет нужную форму для ввода. Например, выбор кнопки «Дисциплины» откроет форму ввода дисциплин (Рис П.17)

Рис П.17. Форма ввода дисциплин.

Приложение 3

Макросы

ГлавнаяCompare DatabaseSub Form_Open(Cancel As Integer)CInt(Left$(Me.Application.Version, InStr(1, Me.Application.Version, ".") - 1)) >= 12 Then.ПолеСоСписком12.Visible = False.Дисциплина_подпись.Visible = False.ПолеСоСписком12.Visible = True.Дисциплина_подпись.Visible = TrueIfSubSub Кнопка6_Click()SubSub Кнопка6_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)Error GoTo Err_Кнопка6_ClickstDocName As StringS1 As String, S2 As String, S3 As String, S4 As String, S As String

If Not Me.ПолеСоСписком2 Then S1 = "[Код_формы_обучения]=" & Me.ПолеСоСписком2Not Me.ПолеСоСписком4 Then S2 = "[Учебный план_Код_группы]=" & Me.ПолеСоСписком4Not Me.ПолеСоСписком8 Then S3 = "[Семестр]=" & Me.ПолеСоСписком8Not Me.ПолеСоСписком12 Then S4 = "[Код_дисциплины]=" & Me.ПолеСоСписком12

If S1 <> "" Then S = S1S <> "" And S2 <> "" Then S = S & " And " & S2S = "" And S2 <> "" Then S = S2S <> "" And S3 <> "" Then S = S & " And " & S3S = "" And S3 <> "" Then S = S3S <> "" And S4 <> "" Then S = S & " And " & S4S = "" And S4 <> "" Then S = S4S = "" And (S2 <> "" Or S3 <> "" Or S4 <> "") Then S = S2 & S3 & S4CInt(Left$(Me.Application.Version, InStr(1, Me.Application.Version, ".") - 1)) < 12 Then= "Экзаменационная ведомость - подготовка".OpenReport stDocName, acViewPreview, , S

Else= "Учебный план с печатью ведомости"

DoCmd.OpenReport stDocName, acViewReport, , SIf_Кнопка6_Click:Sub_Кнопка6_Click:Err.DescriptionExit_Кнопка6_ClickSubSub Кнопка33_Click()Error GoTo Err_Кнопка33_Click

Dim stDocName As String= "Экзаменационная ведомость - подготовка".OpenReport stDocName, acViewReport, , "[Код_дисциплины_план]=" & Me.Код_дисциплины_план_Кнопка33_Click:Sub_Кнопка33_Click:

MsgBox Err.DescriptionExit_Кнопка33_ClickSubSub Кнопка15_Click()Error GoTo Err_Кнопка15_Click_Кнопка15_Click:Sub_Кнопка15_Click:Err.DescriptionExit_Кнопка15_ClickSubSub Кнопка15_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)S1 As String, S2 As String, S3 As String, S4 As String, S As StringstDocName As StringNot Me.ПолеСоСписком11 Then S1 = "[Код_ученика]=" & Me.ПолеСоСписком11

If Not Me.ПолеСоСписком4 Then S2 = "[Код_группы]=" & Me.ПолеСоСписком4Not Me.ПолеСоСписком2 Then S3 = "[Код_формы]=" & Me.ПолеСоСписком2Me.ПолеСоСписком16 <> "" Then= "[Номер_гр]=" & Chr(34) & Me.ПолеСоСписком16 & Chr(34)

End If= ""

If S1 <> "" Then S = S1S <> "" And S2 <> "" Then S = S & " And " & S2S = "" And S2 <> "" Then S = S2S <> "" And S3 <> "" Then S = S & " And " & S3S = "" And S3 <> "" Then S = S3S <> "" And S4 <> "" Then S = S & " And " & S4S = "" And S4 <> "" Then S = S4S = "" And (S2 <> "" Or S3 <> "" Or S4 <> "") Then S = S2 & S3 & S4

stDocName = ChrW(1043) & ChrW(1088) & ChrW(1091) & ChrW(1087) & ChrW(1087) & ChrW(1099) & ChrW(32) & ChrW(1089) & ChrW(1090) & ChrW(1091) & ChrW(1076) & ChrW(1077) & ChrW(1085) & ChrW(1090) & ChrW(1086) & ChrW(1074).OpenReport stDocName, acViewPreview, , SSubSub Кнопка6_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)Error GoTo Err_Кнопка6_ClickstDocName As StringS1 As String, S2 As String, S3 As String

If Not Me.ПолеСоСписком2 Then S1 = "[Код_формы_обучения]=" & Me.ПолеСоСписком2Not Me.ПолеСоСписком4 Then S2 = "[Учебный план_Код_группы]=" & Me.ПолеСоСписком4Not Me.ПолеСоСписком8 Then S3 = "[Семестр]=" & Me.ПолеСоСписком8

If S1 <> "" And S2 <> "" Then S1 = S1 & " And "S2 <> "" And S3 <> "" Then S2 = S2 & " And "S2 = "" And S1 <> "" And S3 <> "" Then S1 = S1 & " And "= ChrW(1059) & ChrW(1095) & ChrW(1077) & ChrW(1073) & ChrW(1085) & ChrW(1099) & ChrW(1081) & ChrW(32) & ChrW(1087) & ChrW(1083) & ChrW(1072) & ChrW(1085).OpenReport stDocName, acViewPreview, , S1 & S2 & S3

Exit_Кнопка6_Click:Sub_Кнопка6_Click:Err.DescriptionExit_Кнопка6_ClickSubCompare DatabaseSub Кнопка15_Click()Error GoTo Err_Кнопка15_ClickstDocName As String= ChrW(1055) & ChrW(1088) & ChrW(1080) & ChrW(1082) & ChrW(1072) & ChrW(1079) & ChrW(32) & ChrW(1086) & ChrW(32) & ChrW(1089) & ChrW(1090) & ChrW(1086) & ChrW(1080) & ChrW(1084) & ChrW(1086) & ChrW(1089) & ChrW(1090) & ChrW(1080)

DoCmd.OpenReport stDocName, acPreview, , "[Номер_приказа_стоимости]=" & Me.Номер_приказа_стоимости_Кнопка15_Click:Sub_Кнопка15_Click:

MsgBox Err.DescriptionExit_Кнопка15_Click

End SubCompare DatabaseSub Кнопка23_Click()SubSub Кнопка8_Click()Error GoTo Err_Кнопка8_ClickstDocName As StringstLinkCriteria As String= ChrW(1057) & ChrW(1090) & ChrW(1091) & ChrW(1076) & ChrW(1077) & ChrW(1085) & ChrW(1090)Not Me.Дан_ученика Then.OpenForm stDocName, , , "[Код_ ученика]=" & Me.Дан_ ученик

Else"Ученик не выбран. Будут показаны данные обо всех учениках", vbInformation

DoCmd.OpenForm stDocNameIf_Кнопка8_Click:Sub_Кнопка8_Click:Err.DescriptionExit_Кнопка8_Click

End SubSub Кнопка9_Click()Error GoTo Err_Кнопка9_ClickstDocName As String= ChrW(1050) & ChrW(1072) & ChrW(1088) & ChrW(1090) & ChrW(1086) & ChrW(1095) & ChrW(1082) & ChrW(1072) & ChrW(32) & ChrW(1089) & ChrW(1090) & ChrW(1091) & ChrW(1076) & ChrW(1077) & ChrW(1085) & ChrW(1090) & ChrW(1072) & ChrW(32) & ChrW(45) & ChrW(32) & ChrW(1091) & ChrW(1089) & ChrW(1087) & ChrW(1077) & ChrW(1074) & ChrW(1072) & ChrW(1077) & ChrW(1084) & ChrW(1086) & ChrW(1089) & ChrW(1090) & ChrW(1100)

If Not Me.Дан_ученик Then.OpenReport stDocName, acPreview, , "[Код_ ученика]=" & Me.Дан_ ученик

Else"Ученик не выбран. Будут показаны данные обо всех учениках", vbInformation

DoCmd.OpenReport stDocName, acPreviewIf_Кнопка9_Click:Sub_Кнопка9_Click:Err.DescriptionExit_Кнопка9_Click

End SubSub Кнопка10_Click()Error GoTo Err_Кнопка10_ClickstDocName As String= ChrW(1054) & ChrW(1087) & ChrW(1083) & ChrW(1072) & ChrW(1090) & ChrW(1072) & ChrW(32) & ChrW(1086) & ChrW(1073) & ChrW(1091) & ChrW(1095) & ChrW(1077) & ChrW(1085) & ChrW(1080) & ChrW(1103)Not Me.Дан_ученик Then.OpenReport stDocName, acPreview, , "[Код_ ученика]=" & Me.Дан_ ученик

Else"Ученик не выбран. Будут показаны данные обо всех учениках", vbInformation

DoCmd.OpenReport stDocName, acPreviewIf

Exit_Кнопка10_Click:Sub_Кнопка10_Click:Err.DescriptionExit_Кнопка10_Click

End SubSub Кнопка24_Click()Error GoTo Err_Кнопка24_ClickstDocName As StringstLinkCriteria As String= ChrW(1054) & ChrW(1087) & ChrW(1083) & ChrW(1072) & ChrW(1090) & ChrW(1072) & ChrW(32) & ChrW(1086) & ChrW(1073) & ChrW(1091) & ChrW(1095) & ChrW(1077) & ChrW(1085) & ChrW(1080) & ChrW(1103)Not Me.Дан_ученик Then.OpenForm stDocName, , , "[Код_ ученика]=" & Me.Дан_ученик

Else"Ученик не выбран. Будет выведена информация по всем ученикам", vbInformation

DoCmd.OpenForm stDocNameIf_Кнопка24_Click:Sub_Кнопка24_Click:Err.DescriptionExit_Кнопка24_Click

End SubSub Кнопка46_Click()Error GoTo Err_Кнопка46_ClickstDocName As StringstLinkCriteria As String= ChrW(1057) & ChrW(1087) & ChrW(1088) & ChrW(1072) & ChrW(1074) & ChrW(1086) & ChrW(1095) & ChrW(1085) & ChrW(1080) & ChrW(1082) & ChrW(1080).OpenForm stDocName, , , stLinkCriteria_Кнопка46_Click:Sub_Кнопка46_Click:Err.DescriptionExit_Кнопка46_Click

End SubCompare DatabaseSub Кнопка0_Click()Error GoTo Err_Кнопка0_ClickstDocName As StringstLinkCriteria As String= ChrW(1044) & ChrW(1080) & ChrW(1089) & ChrW(1094) & ChrW(1080) & ChrW(1087) & ChrW(1083) & ChrW(1080) & ChrW(1085) & ChrW(1072).OpenForm stDocName, , , stLinkCriteria_Кнопка0_Click:Sub_Кнопка0_Click:Err.DescriptionExit_Кнопка0_Click

End SubSub Кнопка1_Click()Error GoTo Err_Кнопка1_ClickstDocName As StringstLinkCriteria As String= ChrW(1057) & ChrW(1087) & ChrW(1077) & ChrW(1094) & ChrW(1080) & ChrW(1072) & ChrW(1083) & ChrW(1100) & ChrW(1085) & ChrW(1086) & ChrW(1089) & ChrW(1090) & ChrW(1100).OpenForm stDocName, , , stLinkCriteria_Кнопка1_Click:Sub_Кнопка1_Click:Err.DescriptionExit_Кнопка1_Click

End SubSub Кнопка2_Click()Error GoTo Err_Кнопка2_ClickstDocName As StringstLinkCriteria As String= ChrW(1060) & ChrW(1072) & ChrW(1082) & ChrW(1091) & ChrW(1083) & ChrW(1100) & ChrW(1090) & ChrW(1077) & ChrW(1090).OpenForm stDocName, , , stLinkCriteria_Кнопка2_Click:Sub_Кнопка2_Click:Err.DescriptionExit_Кнопка2_Click

End SubSub Кнопка3_Click()Error GoTo Err_Кнопка3_ClickstDocName As StringstLinkCriteria As String= ChrW(1057) & ChrW(1090) & ChrW(1091) & ChrW(1076) & ChrW(1077) & ChrW(1085) & ChrW(1090).OpenForm stDocName, , , stLinkCriteria_Кнопка3_Click:Sub_Кнопка3_Click:Err.DescriptionExit_Кнопка3_Click

End SubSub Кнопка4_Click()Error GoTo Err_Кнопка4_ClickstDocName As StringstLinkCriteria As String= ChrW(1059) & ChrW(1095) & ChrW(1077) & ChrW(1073) & ChrW(1085) & ChrW(1099) & ChrW(1081) & ChrW(32) & ChrW(1087) & ChrW(1083) & ChrW(1072) & ChrW(1085).OpenForm stDocName, , , stLinkCriteria_Кнопка4_Click:Sub_Кнопка4_Click:Err.DescriptionExit_Кнопка4_Click

End SubSub Кнопка5_Click()Error GoTo Err_Кнопка5_ClickstDocName As StringstLinkCriteria As String= ChrW(1043) & ChrW(1086) & ChrW(1088) & ChrW(1086) & ChrW(1076).OpenForm stDocName, , , stLinkCriteria_Кнопка5_Click:Sub_Кнопка5_Click:Err.DescriptionExit_Кнопка5_Click

End SubSub Кнопка6_Click()Error GoTo Err_Кнопка6_ClickstDocName As StringstLinkCriteria As String= ChrW(1059) & ChrW(1083) & ChrW(1080) & ChrW(1094) & ChrW(1072).OpenForm stDocName, , , stLinkCriteria_Кнопка6_Click:Sub_Кнопка6_Click:Err.DescriptionExit_Кнопка6_Click

End SubSub Кнопка8_Click()SubSub Кнопка9_Click()Error GoTo Err_Кнопка9_ClickstDocName As StringstLinkCriteria As String= ChrW(1059) & ChrW(1095) & ChrW(1077) & ChrW(1073) & ChrW(1085) & ChrW(1099) & ChrW(1081) & ChrW(32) & ChrW(1087) & ChrW(1083) & ChrW(1072) & ChrW(1085) & ChrW(32) & ChrW(45) & ChrW(32) & ChrW(1075) & ChrW(1088) & ChrW(1091) & ChrW(1087) & ChrW(1087) & ChrW(1080) & ChrW(1088) & ChrW(1086) & ChrW(1074) & ChrW(1082) & ChrW(1072) & ChrW(32) & ChrW(1087) & ChrW(1086) & ChrW(32) & ChrW(1089) & ChrW(1087) & ChrW(1077) & ChrW(1094) & ChrW(1080) & ChrW(1072) & ChrW(1083) & ChrW(1100) & ChrW(1085) & ChrW(1086) & ChrW(1089) & ChrW(1090) & ChrW(1103) & ChrW(1084)

DoCmd.OpenForm stDocName, , , stLinkCriteria_Кнопка9_Click:Sub_Кнопка9_Click:Err.DescriptionExit_Кнопка9_Click

End SubCompare DatabaseSub Кнопка13_Click()Error GoTo Err_Кнопка13_ClickstDocName As String= ChrW(1069) & ChrW(1082) & ChrW(1079) & ChrW(1072) & ChrW(1084) & ChrW(1077) & ChrW(1085) & ChrW(1072) & ChrW(1094) & ChrW(1080) & ChrW(1086) & ChrW(1085) & ChrW(1085) & ChrW(1072) & ChrW(1103) & ChrW(32) & ChrW(1074) & ChrW(1077) & ChrW(1076) & ChrW(1086) & ChrW(1084) & ChrW(1086) & ChrW(1089) & ChrW(1090) & ChrW(1100).OpenReport stDocName, acPreview, , "[Номер_экз_вед]=" & Me.Номер_экз_вед_Кнопка13_Click:Sub_Кнопка13_Click:Err.DescriptionExit_Кнопка13_Click

End SubCompare DatabaseSub Кнопка15_Click()Error GoTo Err_Кнопка15_ClickstDocName As String= ChrW(1055) & ChrW(1088) & ChrW(1080) & ChrW(1082) & ChrW(1072) & ChrW(1079) & ChrW(32) & ChrW(1086) & ChrW(32) & ChrW(1089) & ChrW(1090) & ChrW(1086) & ChrW(1080) & ChrW(1084) & ChrW(1086) & ChrW(1089) & ChrW(1090) & ChrW(1080)

DoCmd.OpenReport stDocName, acPreview, , "[Номер_приказа_стоимости]=" & Me.Номер_приказа_стоимости_Кнопка15_Click:Sub_Кнопка15_Click:

MsgBox Err.DescriptionExit_Кнопка15_Click

End SubCompare DatabaseSub Кнопка6_Click()SubSub Кнопка6_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)Error GoTo Err_Кнопка6_ClickstDocName As StringS1 As String, S2 As String, S3 As String

If Not Me.ПолеСоСписком2 Then S1 = "[Код_формы_обучения]=" & Me.ПолеСоСписком2Not Me.ПолеСоСписком4 Then S2 = "[Учебный план_Код_группы]=" & Me.ПолеСоСписком4Not Me.ПолеСоСписком8 Then S3 = "[Семестр]=" & Me.ПолеСоСписком8

If S1 <> "" And S2 <> "" Then S1 = S1 & " And "S2 <> "" And S3 <> "" Then S2 = S2 & " And "S2 = "" And S1 <> "" And S3 <> "" Then S1 = S1 & " And "= ChrW(1059) & ChrW(1095) & ChrW(1077) & ChrW(1073) & ChrW(1085) & ChrW(1099) & ChrW(1081) & ChrW(32) & ChrW(1087) & ChrW(1083) & ChrW(1072) & ChrW(1085).OpenReport stDocName, acViewPreview, , S1 & S2 & S3

Exit_Кнопка6_Click:Sub_Кнопка6_Click:Err.DescriptionExit_Кнопка6_ClickSubCompare DatabaseSub Form_Open(Cancel As Integer)CInt(Left$(Me.Application.Version, InStr(1, Me.Application.Version, ".") - 1)) >= 12 Then.ПолеСоСписком12.Visible = False.Дисциплина_подпись.Visible = False.ПолеСоСписком12.Visible = True.Дисциплина_подпись.Visible = TrueIfSubSub Кнопка6_Click()SubSub Кнопка6_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)Error GoTo Err_Кнопка6_ClickstDocName As StringS1 As String, S2 As String, S3 As String, S4 As String, S As String

If Not Me.ПолеСоСписком2 Then S1 = "[Код_формы_обучения]=" & Me.ПолеСоСписком2Not Me.ПолеСоСписком4 Then S2 = "[Учебный план_Код_группы]=" & Me.ПолеСоСписком4Not Me.ПолеСоСписком8 Then S3 = "[Семестр]=" & Me.ПолеСоСписком8Not Me.ПолеСоСписком12 Then S4 = "[Код_дисциплины]=" & Me.ПолеСоСписком12

If S1 <> "" Then S = S1S <> "" And S2 <> "" Then S = S & " And " & S2S = "" And S2 <> "" Then S = S2S <> "" And S3 <> "" Then S = S & " And " & S3S = "" And S3 <> "" Then S = S3S <> "" And S4 <> "" Then S = S & " And " & S4S = "" And S4 <> "" Then S = S4S = "" And (S2 <> "" Or S3 <> "" Or S4 <> "") Then S = S2 & S3 & S4CInt(Left$(Me.Application.Version, InStr(1, Me.Application.Version, ".") - 1)) < 12 Then= "Экзаменационная ведомость - подготовка".OpenReport stDocName, acViewPreview, , S

Else= "Учебный план с печатью ведомости"

DoCmd.OpenReport stDocName, acViewReport, , SIf

Exit_Кнопка6_Click:Sub_Кнопка6_Click:Err.DescriptionExit_Кнопка6_Click

End Sub

Похожие работы на - Создание базы данных учета оплаты дополнительных услуг и учета успеваемости учеников МБОУ ДОД 'ДХШ' НГО

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!