Помощь в написании студенческих работ
Антистрессовый сервис

Автоматизация заполнения подписки на газеты и журналы

КурсоваяПомощь в написанииУзнать стоимостьмоей работы

При подтверждении появляется форма с полями для ввода данных. Также имеется кнопка «Просмотр и редактирование». При нажатии на нее появляется форма, позволяющая найти необходимого клиента. При нажатии на «ОК» текущий код клиента заполняется на форме и форма закрывается. После заполнения всех полей на форме добавления нового клиента необходимо нажать кнопку «Сохранить». Если что-либо введено… Читать ещё >

Автоматизация заполнения подписки на газеты и журналы (реферат, курсовая, диплом, контрольная)

ВВЕДЕНИЕ

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

· Невысокая стоимость компьютеров ;

· Выгодность для многих деловых применений ;

· Простота использования ;

· Возможность индивидуального взаимодействия с компьютером без посредников и ограничений ;

· Высокие возможности переработки информации ;

· Высокая надежность и простота ремонта ;

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

· Использование средств вычислительной техники в автоматических или автоматизированных информационных системах .

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

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

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

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

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

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

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

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

Для решения поставленной задачи используется компьютер типа IBM PC, операционная система Windows XP, система программирования VBA, СУБД Microsoft Access, SQL.

1. ОБЩИЙ РАЗДЕЛ.

1.1 Характеристика системы программирования.

Для программного решения задачи используется система программирования Visual Basic For Application (VBA).

Microsoft Visual Basic — средство разработки программного обеспечения, разрабатываемое корпорацией Microsoft и включающее язык программирования и среду разработки. Язык Visual Basic унаследовал дух, стиль и отчасти синтаксис своего предка — языка Basic, у которого есть немало диалектов. В то же время Visual Basic сочетает в себе процедуры и элементы объектно-ориентированных и компонентно-ориентированных языков программирования. Среда разработки VB включает инструменты для визуального конструирования пользовательского интерфейса.

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

Первое признание серьёзными разработчиками Visual Basic получил после выхода версии 3 — VB3. Окончательное признание как полноценного средства программирования для Windows — при выходе версии 5 — VB5. Версию VB6, входящую в состав Microsoft Visual Studio 6.0, стала по-настоящему зрелым и функционально богатым продуктом. После этого разработчики из Microsoft существенно изменили направление развития данной технологии.

Visual Basic .NET не позволяет программировать по-старому, ибо по сути является совершенно другим языком, таким же, как и любой другой язык программирования для платформы .NET. Индивидуальность языка, так же как и его преимущества (простота, скромность создания программ, лёгкость использования готовых компонент) при использовании в среде .NET не имеют такого значения, как раньше — всё сосредоточено на возможностях самой системы .NET, на её библиотеке классов. Поэтому сегодня нужно говорить о классическом Visual Basic, его диалектах Visual Basic for Applications (VBA) и Visual Basic Scripting Edition (VBScript) и о языке для платформы .NET — Visual Basic .NET.

Язык Visual Basic не стандартизован ни ANSI, ни ISO.

Достоинства:

— Высокая скорость создания приложений с графическим интерфейсом для MS Windows.

— Простой синтаксис, позволяющий очень быстро освоить язык.

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

Недостатки:

— Поддержка операционных систем только семейства Windows (Исключение — VB1 for DOS).

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

— Требует установленных DLL для работы программы.

Типы данных VBA представлены в таблице 1.

Таблица 1 — Типы данных VBA.

Тип данных.

Описание и диапазон значения.

Byte.

Хранение положительных чисел от 0 до 255.

Boolean.

Хранение логических значений: True, False.

Currency.

Хранение чисел для точных вычислений в диапазоне от -922 337 203 685 477,5808 до 922 337 203 685 477,5807.

Date.

Хранение даты и времени. Даты от 1.01.100 до 31.12.9999.

Время от 00:00:00 до 23:59:59.

Double.

Хранение чисел двойной точности от -1,79 769 313 486 232*10308 до 4,94 065 645 841 247*10−324 от 4,94 065 645 841 247*10−324 до 1,79 769 313 486 232*10308.

Integer.

Хранение целых чисел от -32 768 до 32 767.

Long.

Хранение целых чисел от -2 147 483 648 до 2 147 483 647.

Single.

Хранение чисел одинарной точности от -3,402 823*1038 до -1,401 298*10−45 от 1,401 298*10−45 до 3,402 823*1038.

String.

Хранение текста длиной до 2 млрд. символов.

Variant.

Хранение любого типа данных.

Объявление простых переменных. При объявлении переменной определяется ее тип и область видимости — область, где имя переменной видимо и, значит, возможен доступ к ее значению. Переменные можно объявлять на двух уровнях — уровне процедуры и уровне модуля. Для объявления переменных используются операторы Dim, Public, Private и Static. Первый можно использовать на обоих уровнях, Public и Private — на уровне модуля, Static — только на уровне процедуры.

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

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

— на все процедуры одного модуля, в котором они объявлены; такие глобальные переменные, называемые закрытыми (Private), должны быть объявлены на уровне модуля либо оператором Private, либо оператором Dim;

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

Локальные переменные уровня процедуры могут объявляться оператором Static, что делает их статическими. Обычные локальные переменные рождаются при входе в процедуру, видимы только в ней и «умирают» при выходе из нее. Это значит, что память под переменные отводится при входе в процедуру, а при выходе она освобождается. Область видимости статических переменных по-прежнему — процедура, но время жизни иное, так как у них не отбирается память при выходе, — она просто становится временно недоступной. Поэтому при повторном входе в процедуру статические переменные восстанавливают те значения, которые у них были при последнем выходе. Статические переменные — это хранители информации между многократными вызовами одной и той же процедуры. Чтобы статические переменные имели смысл, необходима первоначальная инициализация переменных, — они должны иметь хоть какие-то значения уже при первом вхождении в процедуру. Специальных средств инициализации статических переменных в VBA нет, но вот как VBA инициализирует переменные в момент их объявления:

— 0 — для численных значений.

— Пустая строка (««) — для строк переменной длины.

— Строка, содержащая нули, — для строк фиксированной длины.

— Empty (значение, указывающее на отсутствие инициализации) — для типа Variant.

— Для массивов и записей (типа, определенного пользователем) каждый элемент инициализируется в соответствии с указанными правилами.

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

Одними переменными не обойтись, нужны и константы. В VBA можно объявлять именованные константы, задавая ee значение и, возможно, тип. Такие константы объявляются в операторе Const, подобно объявлению переменных.

В справочную систему Office 97 не включены полные формальные спецификации синтаксиса и семантики VBA. Можно считать, что пользователю предоставлены неявные операционные определения синтаксиса и семантики: синтаксис проверяется на этапе трансляции и тем самым определяется транслятором языка, а семантика — интерпретатором. Разумеется, справочная система содержит достаточно сведений о синтаксисе и семантике языковых конструкций VBA, чтобы пользователь смог, руководствуясь ею, безошибочно написать большую часть нужных ему программ. В неясных случаях можно поэкспериментировать с транслятором и интерпретатором, чтобы построить правильный синтаксис некоторой конструкции и выявить ее семантику. Опыт показывает, что это, как правило, возможно. Однако еще проще заменить неясную конструкцию, которая может приводить к синтаксическим или семантическим ошибкам, на эквивалентную — более простую и понятную. Это осуществимо практически всегда. Рассмотрим, например, основную синтаксическую единицу языка — имя.

Имена процедур, констант, переменных и аргументов должны удовлетворять следующим правилам:

— Имена должны начинаться с буквы.

— Имя не может содержать пробел, точку, восклицательный знак или символы: @, &, $, #.

— Имена не должны иметь более 255 символов.

— Как правило, не следует использовать имена, совпадающие с названиями функций, инструкций и методов языка Visual Basic.

— Не допускается использование повторяющихся имен на одном уровне области определения.

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

Во-первых, помимо указанных во втором пункте символов, имя не может содержать любых видов скобок и кавычек, знаков арифметических операций: +, -,_, /,, %,, знаков отношений: =, <, >, вопросительного знака и запятой. Например, при попытке определить переменную:

Dim x-переменная As String.

Транслятор, выделив дефис, выдаст сообщение: «Ожидался конец инструкции» .

Второе, что требуется уточнить, — это использование русских букв в именах. Однако прописные и строчные русские буквы в именах различаются. Транслятор выдает ошибку описания переменных:

Dim Zw As Integer, zW As Integer.

посчитав, что дважды описана одна и та же переменная, но, например, описание:

Dim Чш As String, чШ As Byte.

допустимо и в модуле будут одновременно существовать две разные переменные Чш и чШ.

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

В качестве ключевых слов в выражениях можно использовать не только имена (знаки) арифметических операций (^, — ,_, /,, Mod, +, &), логических операций (Not, And, Or, Xor, Eqv, Imp), сравнений (=, <>, <, >, <=, >=, Like, Is) и многочисленных встроенных функций VBA, но и имена доступных пользовательских функций, возвращающих значения соответствующих типов. Важнее определить семантику выражения — правила, по которым вычисляются его значение и тип результата. В VBA это не всегда просто, поскольку результат, возвращаемый выражением, зависит от его использования, в частности от типа того объекта, которому значение выражения присваивается. Дело в том, что типизация в VBA весьма либеральная и интерпретатор сам старается привести значение выражения к нужному типу. Если это ему удается, вычисление продолжается, и никакое предупреждение или сообщение об ошибке не выдается. Часто это облегчает жизнь программиста, позволяя не заботиться о таких мелочах, как преобразование чисел в строки, но может привести к трудно исправляемым ошибкам.

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

Сформулируем основные правила автоматического «приведения» типов. Заметим, что в документации их не найти в явном виде.

Если числовое выражение присваивается переменной типа String, то происходит его вычисление и значением переменной становится строка, содержащая полученный результат. Например, если S1 — строковая переменная, то после присвоения.

S1 = 12.34_ 2.

ее значением станет строка «24,68» .

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

Z = «1,6 78 09» & «88» .

ее значением станет число 1.6 780 988. В качестве разделителя целой и дробной частей числа в строке допускается только запятая. Оператор

z = «1.6 78 09» & «88» .

будет забракован интерпретатором (ошибка несоответствия типа).

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

1. При рассмотрении числовых выражений в качестве логических происходит их вычисление и значение 0 преобразуется в False (Ложь), а все остальные значения — в True (Истина).

2. Строковые выражения со значениями False, Ложь (распределение прописных и строчных букв в этих словах может быть произвольным), а также строковые значения, задающие число 0 (например, «0 00 0»), преобразуются в False (Ложь). Выражения со значениями True и Истина, а также строки, задающие все остальные числа, — в True (Истина). Строки Ложь и Истина приводятся к логическим значениям только в локализованной версии.

3. Если значения типа Boolean приводятся к числовым типам данных, то False превращается в 0, а True в -1. Здесь также проявляется «специфика» VBA — во всех известных языках Истина больше, чем Ложь, и потому числовым значением True является 1, а не -1.

4. Если значения типа Boolean приводятся к строковому типу, то False превращается в False в оригинальной версии Office 97 и в строку Ложь в локализованной, а True в — True в оригинальной версии и в Истина — в локализованной версии.

Рассмотрим в качестве примера следующую процедуру.

Sub ex ().

Dim b1 As Boolean, b2 As Boolean.

Dim x1 As Integer.

Dim S1 As String, S2 As String.

b1 = 1.5 ' b1 = Истина.

Debug.Print 1.5, «приводится к «, b1.

x1 = 10 + b1.

Debug.Print «10 + Истина = «, x1.

S1 = 9 — x1.

b2 = S1 & «00» .

Debug.Print «S1=», S1, «b2= «, b2 x1 = (10 > 5)_ 5.

Debug.Print «(10 > 5)_ 5 = «, x1.

b1 = «True»: x1 = b1.

Debug.Print «True», x1.

Debug.Print «True > False = «, True > False.

End Sub.

В результате ее исполнения в окне Проверка будут напечатаны следующие строки:

1,5 приводится к Истина.

10 + Истина = 9.

S1= 0 b2= Ложь.

(10 > 5)_ 5 = -5.

True -1.

True > False = Ложь.

В оригинальной версии Office 97 вместо слов Истина и Ложь будут напечатаны слова True и False. Заметим, что в локализованной и оригинальной версиях строковые переменные будут принимать различные значения, когда им присваиваются булевские выражения. Здесь кроется возможный источник ошибок, так как можно заставить одну и ту же программу работать по-разному в оригинальной и локализованной версиях.

Как показывает пример, выражения вида (x1>5) можно рассматривать и использовать как обычные числовые выражения.

Математические операторы в Visual Basic (в порядке, в котором они будут решаться):

() скобки.

^ возвести в степень.

* умножение.

/ деление.

+ плюс.

— минус.

и пара функций:

Sqr (число) вычесть корень (англ. square root).

Fix (число) обрезает все числа после запятой, округление.

Основные конструкции VBA:

If…Then…Else.

Синтаксис:

If условие Then [код удовл. условию] [Else код неудовл. условию].

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

If условие Then.

[блок кода удовл. условию].

[ElseIf условие №N Then.

[блок кода удовл. условию N, но неудовл. предыдущим условиям] …

[Else.

[блок кода неудовл. при неудовл. условии]].

End If.

Select Case вполне может использоваться в замену конструкции:

if. then.

else if. then.

else if. then.

end if.

При условии что сравнивается одна и та же переменная с различными значениями.

Синтаксис:

Select Case [тестируемая переменная].

[Case N-ное значение/переменная с чем сравнивается тестируемая переменная.

[код N]] …

[Case Else.

[код, если ни одно из вышестоящих условия небыло выполнено]].

End Select.

У Case можно перечислять несколько возможных значений/промежудков, к примеру: Case 1 To 4, 7 To 9, 11, 13, Is > MaxNumber.

Циклы со счетчиком: For. Next.

Синтаксис:

For счетчик = первоначальное значение To конечное значение [Step шаг].

[Код].

[Exit For].

[код].

Next [счетчик].

Для выхода из цикла еще до того как счетчик примет конечное значение пожно воспользоваться Exit For.

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

Циклы с условием:

While условие.

[код].

Wend.

и более гибкий:

Do [While условие].

[код].

[Exit Do].

[код].

Loop.

или:

Do.

[код].

[Exit Do].

[код].

Loop [While условие].

В первом варианте Do … Loop условие проверяется перед выполнением тела цикла, во втором — после.

Массив — набор однотипных данных, содержащихся в переменной, обращение к этим данным идет по одному имени, но с указанием индекса элемента.

Массивы бывают одномерными, N-мерными. Так же возможно создание динамических массивов, т. е. размер которых заранее не известен, и память под данные в них выделяется динамически.

Для задания массива достаточно указать имя переменной, размерность и тип. К примеру:

Dim lngArray (10) As Long создаст массив с 11-тью элементами. Т. е. первый элемент: lngArray (0), последний: lngArray (10).

Для того чтобы первым элемент был не нулевой, а действительно первый — следует использовать: Option Base 1.

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

Dim lngArray (10, 10) As Long.

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

К примеру:

Dim lngArray () As Long.

ReDim lngArray (10, 10).

Случается так что требуется изменить размерность массива сохранив в нем данные, в этом случае у ReDim используется ключевое слово Preserve.

1.2 Встроенные объекты, методы и свойства.

Объекты Access представлены в таблице 2.

Таблица 2 — Объекты MS Access.

Application.

Приложение MS Access.

Control.

Элемент управления формы или отчета.

Debug.

Окно отладки.

2. ТЕХНОЛОГИЧЕСКИЙ РАЗДЕЛ.

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

2.1.1 Организационно-экономическая сущность задачи.

2.1.1.1. Место решения задачи.

Местом решения задачи является почтовое отделение.

2.1.1.2 Цель решения задачи.

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

2.1.1.3 Назначение задачи.

Задача предназначена для упрощенного заполнения, поиска, замены подписок клиентами.

2.1.1.4 Периодичность решения задачи.

Данная задача решается по мере необходимости заполнения новой подписки или просмотра ранее подписанных.

2.1.1.5 Связь с другими задачами.

Связь с другими задачами отсутствует.

2.1.1.6 Описательная модель задачи.

Для заполнения подписки нужны следующие документы:

— Паспорт подписчика.

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

2.1.2 Описание входной информации.

2.1.2.1 Описание входных документов.

Входными документами являются:

— Паспорт подписчика.

Входные документы представлены в приложении 1, приложении 2 и приложении 3.

2.1.2.2 Описание входных данных.

Входные данные представлены в таблице 1.

Таблица 1 — Входные данные.

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

Идентифика-тор

Тип данных.

Размер

Источник данных.

Город.

Город.

Строка.

Ручной ввод.

На какой срок выдана подписка.

Срок.

Строка.

Ручной ввод.

Фамилия, имя, отчество подписчика.

ФИО.

Строка.

Паспорт подписчика.

Адрес проживания подписчика.

Адрес_проживания.

Строка.

Паспорт подписчика.

2.1.3 Описание выходной информации.

2.1.3.1 Описание выходных документов.

Выходным документом является подписка (приведена в Приложении1).

2.1.3.2 Описание выходных данных.

Выходные данные представлены в таблице 2.

Таблица 2 — Выходные данные.

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

Идентифика-тор

Тип данных.

Размер

Источник данных.

Город, где зарегистрирован подписчик.

Город.

Строка.

База Данных.

На какой срок выдана подписка.

Срок.

Строка.

База Данных.

Фамилия, имя, отчество подписчика.

ФИО.

Строка.

База Данных.

Адрес проживания подписчика.

Адрес_проживания.

Строка.

База Данных.

Дата выдачи подписки.

Дата_выдачи.

Строка.

База Данных.

2.1.4 Логическая модель задачи.

Логическая модель задачи представлена на рис. 1.

Рис. 1.

2.1.5 Требования в программе.

2.1.5.1 Функциональные требования к программе.

Приложение должно выполнять следующие функции:

· Обеспечить ввод нового клиента в БД;

· Обеспечить ввод нового издания;

· Обеспечить формирование новой записи;

· Обеспечить удаление данных выданных изданиях;

· Обеспечить удаление данных о владельцах;

· Обеспечить редактирование данных о владельцах;

· Обеспечить печать и просмотр сформированной подписки;

2.1.5.2 Нефункциональные требования к программе.

2.1.5.2.1 Требования к интерфейсу.

Интерфейс программы должен быть:

· Интуитивно-понятный интерфейс;

· Наличие меню;

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

Требования к надежности программы:

· Перехват ошибок:

— контроль соединения с БД;

— контроль на ввод чисел;

— контроль на наличие шаблона подписки;

— контроль изменения данных;

2.1.5.2.3 Требования к реализации.

Приложение должно быть реализовано на VBA Word, база данных СУБД MS Access, запросы на языке SQL, подключены библиотеки:

· Microsoft Word 10.0 Object Library;

· Visual Basic For Application;

· OLE Automation;

· Microsoft Office 10.0 Object Library;

· Microsoft Active Data Object 2.8 Library;

· Microsoft Excel 10.0 Object Library;

2.2 Информационная модель программы решения задачи.

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

Схема данных Базы данных представлена на рис. 2.

Рис. 2.

2.2.2 Структура таблиц Баз Данных.

Структура таблиц Базы данных представлена в таблице 3.

Таблица 3 — Структура таблиц Базы данных.

Имя поля.

Ключевое поле.

Тип данных.

Размер поля.

Обязательное поле.

Индексированное поле.

Номер_подписки.

Да.

Текстовый.

Нет.

нет.

Город.

Нет.

Поле МЕМО.

Нет.

Да (Совпадения не допускаются).

Дата.

Нет.

Текстовый.

Нет.

Да (Совпадения не допускаются).

Срок.

Нет.

Текстовый.

Нет.

Да (Совпадения не допускаются).

Код_подписчика.

Нет.

Текстовый.

Нет.

Нет.

ФИО.

Нет.

Поле МЕМО.

Нет.

Нет.

Адрес_прожива-ния.

Нет.

Поле МЕМО.

Нет.

Нет.

Серия.

Нет.

Текстовый.

Нет.

Нет.

Номер

Нет.

Текстовый.

Нет.

Нет.

Дата_выдачи.

Нет.

Текстовый.

Нет.

Нет.

ГИБДД.

Нет.

Поле МЕМО.

Нет.

Нет.

Цена подписки.

Да.

Текстовый.

Нет.

Да (Совпадения не допускаются).

Ид газеты.

Нет.

Поле МЕМО.

Нет.

Нет.

Ид журнала.

Нет.

Поле МЕМО.

Нет.

Нет.

Цена экземпляра.

Нет.

Текстовый.

Нет.

Нет.

Цена подписки.

Нет.

Текстовый.

Нет.

Нет.

Дата_выдачи.

Нет.

Поле МЕМО.

Нет.

Нет.

2.2.3 Связь между сходными документами, Базой данных и выходными документами.

Связь между сходными документами, Базой данных и выходными документами представлена на рис. 3.

Рис. 3.

подписка газета visual basic application.

2.3 Логическая модель программы.

2.3.1 Структурная схема программы.

Структурная схема приложения представлена на рис. 4.

Рис. 4.

2.3.2 Логическая структура программы.

Логическая структура программы представлена на Рис. 5.

Рис. 5.

2.3.3 Интерфейс программы.

Интерфейс программы представлен на рисунках 6−15.

Рис. 6.

Рис. 7.

Рис. 8.

2.4 Текст программы.

Public flag As Boolean.

Public flag9 As Boolean.

Private fl As Boolean.

Dim oExcel As New Excel.Application.

Dim oWbk As Excel.Workbook.

Dim osheet As Excel.Worksheet.

Private cn As ADODB.Connection.

Private Sub CommandButton1_Click ().

flag = True.

UserForm2.Show.

End Sub.

Private Sub CommandButton2_Click ().

flag9 = False.

UserForm3.Show.

End Sub.

Private Sub CommandButton3_Click ().

ActiveDocument.Save.

If MsgBox («Вы действительно хотите выйти из приложения?», vbYesNo + vbQuestion) = vbYes Then.

UserForm1.Hide.

Application.Quit.

End If.

End Sub.

Private Sub CommandButton4_Click ().

flag9 = True.

UserForm3.Show.

End Sub.

Private Sub CommandButton5_Click ().

UserForm6.Show.

End Sub.

Private Sub CommandButton6_Click ().

UserForm7.Show.

End Sub.

Private Sub CommandButton7_Click ().

On Error GoTo erq.

Set oWbk = Workbooks. Open («C:подписка1.xls»).

Set osheet = oWbk.Worksheets.Item («подписка»).

oExcel.DisplayAlerts = False.

osheet.PrintOut.

oExcel.Quit.

Exit Sub.

erq:

MsgBox «Ошибка! Не найден шаблон подписки. Просмотр и печать невозможны.» .

CommandButton14.Enabled = False.

oExcel.Quit.

End Sub.

Private Sub UserForm_Initialize ().

fl = True.

Me.Caption = «Главное меню» .

On Error GoTo oshibka:

Set cn = New ADODB.Connection.

cn.Provider = «Microsoft.Jet.OLEDB.4.0» .

cn.ConnectionString = «C:База_для_практики.mdb» .

cn.Open.

If Not cn Is Nothing Then.

If cn. State = adStateOpen Then.

MsgBox «База данных успешно подсоединена. Добро пожаловать в программу. Удачной работы. Проверерьте, все ли библиотеки подключены)» .

fl = True.

Else.

oshibka:

MsgBox «Ошибка! База данных не найдена! «.

fl = False.

End If.

End If.

If fl = False Then.

CommandButton1.Enabled = False.

CommandButton2.Enabled = False.

CommandButton4.Enabled = False.

Else.

CommandButton1.Enabled = True.

CommandButton2.Enabled = True.

CommandButton4.Enabled = True.

End If.

End Sub.

Private Sub userform_Activate ().

flag = False.

flag9 = False.

End Sub.

Private cn As ADODB.Connection.

Private bm As Variant.

Private isDisable As Boolean.

Dim skiprecord As Long.

Dim direction As Long.

Public rs1 As New ADODB.Recordset.

Dim rs2 As New ADODB.Recordset.

Dim rs3 As New ADODB.Recordset.

Dim rs4 As New ADODB.Recordset.

Private bmark As Variant.

Private criteria As String.

Public flag5 As Boolean.

Private flag4 As Boolean.

Public flas As Boolean.

Private Sub ComboBox1_KeyDown (ByVal keyCode As MSForms. ReturnInteger, ByVal shift As Integer).

keyCode = 0.

End Sub.

Private Sub ComboBox1_KeyPress (ByVal KeyAscii As MSForms. ReturnInteger).

KeyAscii = 0.

End Sub.

Private Sub CommandButton1_Click ().

UserForm5.Show.

End Sub.

Private Sub CommandButton10_Click ().

Save_izm.

If Not rs1. EOF Then.

rs1.MoveNext.

If Not rs1. EOF Then.

ShowRecord.

Else.

rs1.MoveLast.

End If.

End If.

End Sub.

Private Sub CommandButton11_Click ().

If rs1. RecordCount >= 1 Then.

If MsgBox («Удалить текущую запись?», vbYesNo + vbQuestion) = vbYes Then.

rs1.Delete.

If rs1. RecordCount > 0 Then.

CommandButton8_Click.

Else.

showemptyrecord.

End If.

End If.

End If.

End Sub.

Private Sub Save_izm ().

On Error GoTo errork:

If rs3. Fields («Код_паспорта_тр_ср»).Value <> TextBox8. Value Or _.

rs3.Fields («Серия»).Value <> TextBox9. Value Or rs3. Fields («Номер»).Value <> TextBox10. Value _.

Or rs3. Fields («главпочтампт»).Value <> TextBox11. Value Then.

podtverzdenie.

Else.

If rs4. Fields («Код_техпаспорта»).Value <> TextBox12. Value _.

Or rs4. Fields («Серия»).Value <> TextBox13. Value Or rs4. Fields («Номер»).Value <> TextBox14. Value _.

Or rs4. Fields («Дата_выдачи»).Value <> TextBox15. Value Or _.

rs4.Fields («главпочтампт»).Value <> TextBox16. Value Then.

podtverzdenie.

Else.

If rs1. Fields («дата»).Value <> TextBox1. Text Or _.

rs1.Fields («тип»).Value <> TextBox2. Text Or _.

rs1.Fields («Идентиф_номер»).Value <> TextBox3. Text Or _.

rs1.Fields («начало»).Value <> TextBox4. Text Or _.

rs1.Fields («номер_подписчика»).Value <> TextBox5. Text Then.

podtverzdenie.

Else.

If rs1. Fields («подписки»).Value <> TextBox6. Text _.

Or rs1. Fields («клиент_номер»).Value <> TextBox7. Text Or _.

rs1.Fields («Код_паспорта»).Value <> TextBox12. Text Then.

podtverzdenie.

Else.

If rs1. Fields («Код_паспорта_тр_ср»).Value <> TextBox8. Text _.

Or rs1. Fields («Код_владельца»).Value <> ComboBox1. Text Then.

podtverzdenie.

End If.

End If.

End If.

End If.

End If.

errork:

End Sub.

Private Sub podtverzdenie ().

If MsgBox («Были внесены изменения. Сохранить изменения?», vbYesNo + vbQuestion) = vbYes Then.

CommandButton2_Click.

End If.

End Sub.

Private Sub CommandButton2_Click ().

On Error GoTo oshibka.

If TextBox1. Text = «» Or TextBox3. Text = «» Or TextBox4. Text = «» Or TextBox8. Text = «» Or TextBox9. Text = «» Or TextBox10. Text = «» Or TextBox11. Text = «» Or TextBox12. Text = «» Or TextBox13. Text = «» Or TextBox14. Text = «» Or TextBox15. Text = «» Or TextBox16. Text = «» Or ComboBox1. Text = «» Then.

MsgBox «Заполните все поля, отмеченные * (обязательные поля)» .

Exit Sub.

End If.

If IsNumeric (TextBox4.Text) = False Then.

MsgBox «Поле 'начало подписки' заполнено неправильно» .

Exit Sub.

End If.

FillRecord.

rs3.Update.

rs4.Update.

FillRecord2.

rs1.Update.

bm1 = rs1.Bookmark.

SetEnable True, True.

gos_znak.

UserForm3.TextBox4 = Empty.

rs1.MoveFirst.

ShowRecord.

rs1.Bookmark = bm1.

ShowRecord.

MsgBox «Сохранено» .

Exit Sub.

oshibka:

MsgBox «Ошибка при сохранении» .

End Sub.

Private Sub gos_znak ().

UserForm3.TextBox2.Text = «» .

UserForm3.ComboBox1.Clear.

rs1.Update.

rs1.MoveFirst.

Do Until rs1.EOF.

UserForm3.ComboBox1.AddItem rs1. Fields («Гос_рег_знак_авто»).Value.

rs1.MoveNext.

Loop.

End Sub.

Private Sub CommandButton3_Click ().

Save_izm.

If rs1. EOF = True And rs1. BOF = True Then.

Else.

UserForm3.ComboBox1.Text = rs1. Fields («номер подписки»).Value.

UserForm3.ComboBox1_Change.

End If.

UserForm2.Hide.

End Sub.

Public Sub CommandButton4_Click ().

If flag4 <> True Then.

Save_izm.

End If.

Dim nom1 As Integer.

Dim nom2 As Integer.

If MsgBox («Зарегистрировать новое издание?», vbYesNo + vbQuestion) = vbYes Then.

showemptyrecord.

If rs3. EOF = True And rs3. BOF = True Then.

nom1 = 1.

Else.

rs3.MoveFirst.

nom1 = rs3. Fields («Код_паспорта»).Value.

Do While Not rs3.EOF.

If rs3. Fields («Код_паспорта»).Value > nom1 Then.

nom1 = rs3. Fields («Код_паспорта»).Value.

End If.

rs3.MoveNext.

Loop.

nom1 = nom1 + 1.

End If.

TextBox8.Text = nom1.

If rs4. EOF = True And rs4. BOF = True Then.

nom2 = 1.

Else.

rs4.MoveFirst.

nom2 = rs4. Fields («Код_паспорта»).Value.

Do While Not rs4.EOF.

If rs4. Fields («Код_паспорта»).Value > nom2 Then.

nom2 = rs4. Fields («Код_паспорта»).Value.

End If.

rs4.MoveNext.

Loop.

nom2 = nom2 + 1.

End If.

TextBox12.Text = nom2.

rs1.AddNew.

rs3.AddNew.

rs4.AddNew.

SetEnable False, True.

CommandButton1.Enabled = True.

Else.

If flas = True Then.

SetEnable False, True.

CommandButton1.Enabled = False.

CommandButton2.Enabled = False.

CommandButton4.Enabled = True.

UserForm1.flag = False.

End If.

End If.

End Sub.

Private Sub showemptyrecord ().

TextBox1.Text = Empty.

TextBox2.Text = Empty.

TextBox3.Text = Empty.

TextBox4.Text = Empty.

TextBox5.Text = Empty.

TextBox6.Text = Empty.

TextBox7.Text = Empty.

TextBox8.Text = Empty.

TextBox9.Text = Empty.

TextBox10.Text = Empty.

TextBox11.Text = Empty.

TextBox12.Text = Empty.

TextBox13.Text = Empty.

TextBox14.Text = Empty.

TextBox15.Text = Empty.

TextBox16.Text = Empty.

ComboBox1.Text = Empty.

End Sub.

Private Sub CommandButton5_Click ().

criteria = «[Марка_Модель]='» & TextBox17. Text & «'» .

skiprecord = 0.

direction = adSearchForward.

bmark = rs1.Bookmark.

rs1.MoveFirst.

rs1.Find criteria, skiprecord, direction.

If rs1. EOF Then.

MsgBox «Запись не найдена» .

Beep.

rs1.Bookmark = bmark.

CommandButton6.Enabled = False.

Else: MsgBox «Запись найдена» .

Beep.

ShowRecord.

CommandButton6.Enabled = True.

End If.

End Sub.

Private Sub CommandButton6_Click ().

bmark = rs1.Bookmark.

skiprecord = 1.

direction = adSearchForward.

rs1.Find criteria, skiprecord, direction, bmark.

If rs1. EOF Then.

MsgBox «Запись не найдена» .

Beep.

rs1.Bookmark = bmark.

CommandButton6.Enabled = False.

Else.

MsgBox «запись найдена» .

Beep.

ShowRecord.

End If.

End Sub.

Private Sub CommandButton7_Click ().

Save_izm.

If rs1. EOF = True And rs1. BOF = True Then.

Else.

rs1.MoveLast.

ShowRecord.

End If.

End Sub.

Public Sub CommandButton8_Click ().

Save_izm.

If rs1. EOF = True And rs1. BOF = True Then.

Else.

rs1.MoveFirst.

ShowRecord.

End If.

End Sub.

Private Sub CommandButton9_Click ().

Save_izm.

If Not rs1. BOF Then.

rs1.MovePrevious.

If Not rs1. BOF Then.

ShowRecord.

Else.

rs1.MoveFirst.

End If.

End If.

End Sub.

Public Sub ShowRecord ().

TextBox1.Text = rs1. Fields («ид_газеты»).Value.

TextBox2.Text = rs1. Fields («ид_журнала»).Value.

TextBox3.Text = rs1. Fields («Идентиф_номер»).Value.

TextBox4.Text = rs1. Fields («дата_начала»).Value.

TextBox5.Text = rs1. Fields («клиент_номер»).Value.

TextBox6.Text = rs1. Fields («подписка_номер»).Value.

TextBox7.Text = rs1. Fields («газета_номер»).Value.

TextBox8.Text = rs1. Fields («Код_паспорта «).Value.

TextBox12.Text = rs1. Fields («Код_паспорта»).Value.

rs3.MoveFirst.

Do Until rs3.EOF.

If TextBox8. Text = rs3. Fields («Код_паспорта «).Value Then.

TextBox9.Text = rs3. Fields («ном_газеты»).Value.

TextBox10.Text = rs3. Fields («Ном_журнала»).Value.

TextBox11.Text = rs3. Fields («главпочтамт»).Value.

Exit Do.

End If.

rs3.MoveNext.

Loop.

rs4.MoveFirst.

Do Until rs4.EOF.

If TextBox12. Text = rs4. Fields («Код_паспорта»).Value Then.

TextBox13.Text = rs4. Fields («ном_газеты «).Value.

TextBox14.Text = rs4. Fields («Ном_журнала «).Value.

TextBox15.Text = rs4. Fields («Дата_выдачи»).Value.

TextBox16.Text = rs4. Fields («главпочтамт «).Value.

Exit Do.

End If.

rs4.MoveNext.

Loop.

ComboBox1.Text = rs1. Fields («Код_клиента»).Value.

End Sub.

Private Sub TextBox10_KeyPress (ByVal KeyAscii As MSForms. ReturnInteger).

Select Case KeyAscii.

Case 32.

KeyAscii = 0.

End Select.

End Sub.

Private Sub TextBox13_KeyPress (ByVal KeyAscii As MSForms. ReturnInteger).

Select Case KeyAscii.

Case 32.

KeyAscii = 0.

End Select.

End Sub.

Private Sub TextBox14_KeyPress (ByVal KeyAscii As MSForms. ReturnInteger).

Select Case KeyAscii.

Case 32.

KeyAscii = 0.

End Select.

End Sub.

Private Sub TextBox17_Change ().

CommandButton6.Enabled = False.

End Sub.

Private Sub TextBox3_KeyPress (ByVal KeyAscii As MSForms. ReturnInteger).

Select Case KeyAscii.

Case 32.

KeyAscii = 0.

End Select.

End Sub.

Private Sub TextBox4_KeyPress (ByVal KeyAscii As MSForms. ReturnInteger).

Select Case KeyAscii.

Case 32.

KeyAscii = 0.

End Select.

End Sub.

Private Sub TextBox5_KeyPress (ByVal KeyAscii As MSForms. ReturnInteger).

Select Case KeyAscii.

Case 32.

KeyAscii = 0.

End Select.

End Sub.

Private Sub TextBox6_KeyPress (ByVal KeyAscii As MSForms. ReturnInteger).

Select Case KeyAscii.

Case 32.

KeyAscii = 0.

End Select.

End Sub.

Private Sub TextBox7_KeyPress (ByVal KeyAscii As MSForms. ReturnInteger).

Select Case KeyAscii.

Case 32.

KeyAscii = 0.

End Select.

End Sub.

Private Sub TextBox9_KeyPress (ByVal KeyAscii As MSForms. ReturnInteger).

Select Case KeyAscii.

Case 32.

KeyAscii = 0.

End Select.

End Sub.

Public Sub UserForm_Initialize ().

flag4 = False.

CommandButton6.Enabled = False.

'устанавливаем соединение с БД.

Set cn = New ADODB.Connection.

cn.Provider = «Microsoft.Jet.OLEDB.4.0» .

cn.ConnectionString = «C:База_для_практики.mdb» .

cn.Open.

'заголовок окна.

Me.Caption = «главпочтамт «.

'первый набор записей.

rs1.CursorType = adOpenStatic.

rs1.Source = «SELECT Газеты. ИД газеты], Газеты. Название, Газеты. Срок подписки], Подписчики. Фамилия, Подписчики.Адрес.

FROM Газеты INNER JOIN Подписчики ON Газеты. ИД газеты]=Подписчики. ИД газеты]" .

Set rs1. ActiveConnection = cn.

rs1.LockType = adLockOptimistic.

rs1.Open.

'Второй набор записей.

rs2.CursorType = adOpenStatic.

rs2.Source = «SELECT Подписчики. Фамилия, Подписчики. Имя, Подписчики.Отчество.

FROM Журналы INNER JOIN Подписчики ON Журналы. ИД журнала]=Подписчики. ИД журнала]" .

Set rs2. ActiveConnection = cn.

rs2.LockType = adLockOptimistic.

rs2.Open.

'Третий набор записей.

rs3.CursorType = adOpenStatic.

rs3.Source = «SELECT Газеты. ИД газеты], Газеты. Название, Газеты. Срок подписки], Подписчики. Фамилия, Подписчики.Адрес.

FROM Газеты INNER JOIN Подписчики ON Газеты. ИД газеты]=Подписчики. ИД газеты]" .

Set rs3. ActiveConnection = cn.

rs3.LockType = adLockOptimistic.

rs3.Open.

If rs1. EOF = True And rs1. BOF = True Then.

MsgBox «Данных в базе не обнаружено» .

flas = True.

SetEnable False, True.

CommandButton1.Enabled = False.

CommandButton2.Enabled = False.

CommandButton4.Enabled = True.

UserForm1.flag = False.

CommandButton4_Click.

Else.

flas = False.

rs1.MoveFirst.

ShowRecord.

CommandButton6.Enabled = False.

vladeletc.

End If.

End Sub.

Private Sub userform_Activate ().

If UserForm1. flag = True Then.

CommandButton4_Click.

End If.

End Sub.

Public Sub vladeletc ().

If rs2. EOF = True And rs2. BOF = True Then.

ComboBox1.Clear.

Else.

ComboBox1.Clear.

On Error GoTo next11.

rs2.Open.

next11:

rs2.Requery.

rs2.MoveFirst.

Do Until rs2.EOF.

ComboBox1.AddItem rs2. Fields («Код_клиента»).Value.

rs2.MoveNext.

Loop.

End If.

rs2.Close.

End Sub.

Private Sub SetEnable (isupdateOn As Boolean, isOthersOn As Boolean).

CommandButton1.Enabled = isupdateOn.

CommandButton2.Enabled = isOthersOn.

CommandButton3.Enabled = isupdateOn.

CommandButton4.Enabled = isupdateOn.

CommandButton5.Enabled = isupdateOn.

CommandButton7.Enabled = isupdateOn.

CommandButton8.Enabled = isupdateOn.

CommandButton9.Enabled = isupdateOn.

CommandButton10.Enabled = isupdateOn.

CommandButton11.Enabled = isupdateOn.

End Sub.

Private Sub UserForm2_Terminate ().

cn.Close.

Set cn = Nothing.

End Sub.

Private Sub FillRecord ().

rs3.Fields («Код_паспорта «).Value = TextBox8.Value.

rs3.Fields («Серия»).Value = TextBox9.Value.

rs3.Fields («Номер»).Value = TextBox10.Value.

rs3.Fields («главпочтамт»).Value = TextBox11.Value.

rs4.Fields («Код_паспорта»).Value = TextBox12.Value.

rs4.Fields («Серия»).Value = TextBox13.Value.

rs4.Fields («Номер»).Value = TextBox14.Value.

rs4.Fields («Дата_выдачи»).Value = TextBox15.Value.

rs4.Fields («главпочтамт»).Value = TextBox16.Value.

End Sub.

Private Sub showemptyrecord ().

TextBox1.Text = Empty.

TextBox2.Text = Empty.

TextBox3.Text = Empty.

TextBox4.Text = Empty.

TextBox5.Text = Empty.

TextBox6.Text = Empty.

TextBox7.Text = Empty.

TextBox8.Text = Empty.

TextBox9.Text = Empty.

TextBox10.Text = Empty.

TextBox11.Text = Empty.

TextBox12.Text = Empty.

TextBox13.Text = Empty.

TextBox14.Text = Empty.

TextBox15.Text = Empty.

TextBox16.Text = Empty.

ComboBox1.Text = Empty.

End Sub.

3. РУКОВОДСТВО ПО ИСПОЛЬЗОВАНИЮ ПРОГРАММЫ.

3.1 Руководство системного программиста.

Программа «Автоматизация заполнения подписки» предназначена для автоматизации заполнения подписок и их учета. Программа выполняет следующие функции:

— добавление, изменение, удаление и редактирование данных;

— поиск данных;

— хранение данных в БД;

— печать подписки;

— статистика выданных подписок;

Технические и программные средства, необходимые для нормального функционирования программы следующие:

— процессор Intel;

— принтер;

— оперативная память 128 Кб;

— свободное пространство на жестком диске 5 Мб;

— операционная система Windows XP;

— пакет Microsoft Office.

Для установки программы необходимо вставить диск в cd-дисковод, скопировать на диск C: файлы подписка1. xml, База_для_подписки.mdb и подписка.doc. Запустить программу можно с помощью файла подпискаь.doc. Пароль для входа в программу — 123.

В структуру приложения входят:

— файл приложения подписка.doc.

— файл документа (бланк доверенности) подписка1.xml.

— база данных База_для_подписки.mdb.

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

При запуске программы могут появляться сообщения, представленные на рисунках 18−19.

Рис. 18.

Рис. 19.

3.2 Руководство программиста.

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

Для организации работы программы необходимы следующие компоненты ПК:

— системный блок;

— монитор;

— клавиатура;

— мышь;

— необходимо около 5 Мб свободного места на диске.

Требования к программному обеспечению:

— операционная система Windows XP;

— пакет Microsoft Office.

Структура файла проекта представлена на рисунке 15.

Структура файла проекта.

Рис. 15.

Описание модулей представлено в таблице 4.

Таблица 4 — Описание модулей программы.

Форма.

Процедура.

Описание.

UserForm1.

CommandButton1_Click.

Запуск формы 2.

CommandButton2_Click.

Запуск формы 3.

CommandButton3_Click.

Выход из приложения.

CommandButton7_Click.

Печать пустого бланка подписки.

UserForm_Initialize.

Создание формы, проверка соединения с Базой Данных.

UserForm2.

UserForm_Initialize.

Создание формы, соединение с Базой Данных, создание наборов записей, загрузка списков.

CommandButton2_Click.

Сохранение записи.

CommandButton4_Click.

Создание новой записи.

CommandButton5_Click.

Поиск первой записи.

CommandButton6_Click.

Поиск следующей записи.

CommandButton7_Click.

Переход к последней записи.

CommandButton8_Click.

Переход к первой записи.

CommandButton9_Click.

Переход к предыдущей записи.

CommandButton10_Click.

Переход к следующей записи.

CommandButton11_Click.

Удаление записи.

Showemptyrecord.

Очистка полей.

ShowRecord.

Загрузка полей.

FillRecord.

Переприсваивание измененных данных.

FillRecord2.

Переприсваивание измененных данных.

UserForm3.

UserForm_Initialize.

Создание формы, соединение с Базой Данных, создание наборов записей, загрузка списков.

ComboBox1_Change.

Автоопределение кода клиента по выбранному критерию.

CommandButton1_Click.

Вызов формы 2.

CommandButton11_Click.

Удаление записи.

CommandButton12_Click.

Поиск первой записи.

3.3 Руководство оператора.

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

При правильном вводе пароля на экране появятся сообщения, подтверждающие корректный ввод и подключение БД, и главная форма, где можно выбрать следующие подпункты: «подписка», «изменить», «Просмотр выданных подписок» Распечатать пустой бланк", «Выход» .

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

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

После заполнения всех полей формы заполнения подписки необходимо нажать «Сохранить». Если все поля введены верно — появится сообщение «Сохранено» и будут доступны ранее недоступные кнопки просмотра и редактирования, а также кнопка «Просмотреть подписку». При нажатии на кнопку «Просмотреть подписку» появляется сообщение «Распечатать без предварительного просмотра?». При подтверждении текущая подписка будет распечатана. При отклонении сообщения заполненный шаблон доверенности будет открыт в MS Excel.

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

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

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

На формах есть кнопки просмотра: «<<» — переход к первой записи, «<» переход к предыдущей записи, «>» — переход к следующей записи, «>>» — переход к первой записи.

ЗАКЛЮЧЕНИЕ

.

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

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

Достоинствами приложения являются:

— корректный ввод данных;

— понятный и удобный интерфейс.

Недостатком приложения является:

— недостаточная функциональность;

В результате выполнения приложения я закрепила навыки работы с VBA, языком структурированных запросов SQL и приложением MS Office — MS Access.

1. Конспект лекций по курсу ППП.

2. Конспект лекций по курсу ТРПП.

3. А. Гарнаев — Самоучитель VBA.

Показать весь текст
Заполнить форму текущей работой