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

Характеристика системы программирования Visual Basic For Application. Автоматизация подписки на газеты и журналы, а так же их учёт. Связь между сходными документами, Базой данных и выходными документами. Встроенные объекты MS Access, методы и свойства.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 22.09.2012
Размер файла 350,8 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

ВВЕДЕНИЕ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Для решения поставленной задачи используется компьютер типа 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

Хранение чисел для точных вычислений в диапазоне от -922337203685477,5808 до 922337203685477,5807

Date

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

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

Double

Хранение чисел двойной точности от -1,79769313486232*10308 до 4,94065645841247*10-324 от 4,94065645841247*10-324 до 1,79769313486232*10308

Integer

Хранение целых чисел от -32768 до 32767

Long

Хранение целых чисел от -2147483648 до 2147483647

Single

Хранение чисел одинарной точности от -3,402823*1038 до -1,401298*10-45 от 1,401298*10-45 до 3,402823*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.6780988. В качестве разделителя целой и дробной частей числа в строке допускается только запятая. Оператор

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 | Until} условие]

[код]

[Exit Do]

[код]

Loop

или:

Do

[код]

[Exit Do]

[код]

Loop [{While | Until} условие]

В первом варианте 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.

Размещено на http://www.allbest.ru/

Рис.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 - Структура таблиц Базы данных

Имя поля

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

Тип данных

Размер поля

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

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

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

Да

Текстовый

50

Нет

нет

Город

Нет

Поле МЕМО

Нет

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

Дата

Нет

Текстовый

50

Нет

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

Срок

Нет

Текстовый

50

Нет

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

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

Нет

Текстовый

50

Нет

Нет

ФИО

Нет

Поле МЕМО

Нет

Нет

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

Нет

Поле МЕМО

Нет

Нет

Серия

Нет

Текстовый

50

Нет

Нет

Номер

Нет

Текстовый

50

Нет

Нет

Дата_выдачи

Нет

Текстовый

50

Нет

Нет

ГИБДД

Нет

Поле МЕМО

Нет

Нет

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

Да

Текстовый

50

Нет

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

Ид газеты

Нет

Поле МЕМО

Нет

Нет

Ид журнала

Нет

Поле МЕМО

Нет

Нет

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

Нет

Текстовый

50

Нет

Нет

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

Нет

Текстовый

50

Нет

Нет

Дата_выдачи

Нет

Поле МЕМО

Нет

Нет

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

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

Размещено на http://www.allbest.ru/

Рис. 3

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

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

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

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

Размещено на http://www.allbest.ru/

Рис. 4

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

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

Размещено на http://www.allbest.ru/

Рис. 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

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

Размещено на http://www.allbest.ru/

Рис.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

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.