Автоматизация заполнения подписки на газеты и журналы
Характеристика системы программирования 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
Подобные документы
Visual Basic for Application. Объекты и коллекции. Использование VBA в среде Access. Основы современной технологии проектирования АИС. Автоматизированное проектированиеCASE-технологий. Реинжиниринг бизнес-процессов и проектирование корпоративной ИС.
курсовая работа [2,1 M], добавлен 22.02.2008Характеристика мови програмування VBA (Visual Basic for Application): можливості й засоби. Використання редактора Visual Basic. Створення та виконання VBA-програм. Типи даних, змінні й константи, операції й вирази. Керуючі оператори, процедури й функції.
реферат [29,9 K], добавлен 28.06.2011Напівфункціональна мова програмування, складова частина Access - Visual Basic for Applications (VBA). Створення коду VBA за допомогою майстрів елементів управління. Модулі, створення процедур обробки подій. Редагування у вікні модуля, аргументи процедури.
реферат [144,8 K], добавлен 31.08.2009Язык программирования Visual Basic: краткая история возникновения, значение и общая характеристика. Изучение основных свойств Visual Basic, синтаксис языка. Обзор ключевых операторов Visual Basic, пользовательские процедуры и функции данного языка.
контрольная работа [36,4 K], добавлен 23.07.2014Программа обработки одномерного массива средствами Visual Basic for Application (VBA) на предмет преобразования, печати, удаления, сортировки, поиска сумм, положительных, чётных элементов, их кратности и дополнения другими элементами и значениями данных.
контрольная работа [12,3 K], добавлен 07.10.2012Решение экономических задач с помощью Microsoft Excel и инструментария Visual Basic For Application. Способы запуска редактора Visual Basic, правила его синтаксиса. Создание автоматических макросов по сортировке и выборке. Создание управляющих кнопок.
курсовая работа [852,0 K], добавлен 24.09.2010Программный проект Баз данных средствами Visual Basic 6.0. Проектирование структуры таблицы базы данных Visual Basic 6.0. Заполнение созданных таблиц БД исходными данными. Создание пользовательского меню. Вид формы и свойства элементов управления.
курсовая работа [3,0 M], добавлен 19.06.2010Общие понятия реляционного похода к базам данных. Разработка программы для автоматизации функций руководителя салона сотовой связи. Детализация бизнес-процессов. Интерфейс для работы пользователя. Тестирование разработанной информационной системы.
курсовая работа [2,2 M], добавлен 26.06.2012Роль информационных технологий в обществе. Краткая природно-климатическая характеристика территории хозяйства ЗАО "Новорождественское", информационный анализ входной информации. Автоматизация уборочных работ, формирование массивов, запросов и отчетов.
курсовая работа [718,4 K], добавлен 17.11.2012Базы данных и системы управления базами данных. Структура простейшей базы данных, свойства полей. Понятие языка SQL. Проектирование баз данных, режимы работы, объекты. СУБД Microsoft Access. Создание базы данных "Электротовары" средствами Visual FoxPro.
курсовая работа [5,7 M], добавлен 29.04.2014