Создание и обработка Баз данных средствами Visual Basic 60

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

Государственное образовательное учреждение высшего профессионального образования «ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ УПРАВЛЕНИЯ»

Кафедра КОМПЬЮТЕРНЫХ ТЕХНОЛОГИЙ





Курсовой проект по дисциплине

«Компьютерная подготовка»

На тему:

«Создание и обработка Баз данных средствами Visual Basic 6.0»





	Специальность

	«Государственное и муниципальное управление»

	Курс I

	Группа ГиМУ 1-4

	Студент Дегтярев Д.Н.

	Студенческий билет № 009-09

	Вариант № 8

	«15» мая 2010 г.

	Руководитель проекта

	______________________

	(учебное звание, степень)

	Оценка работы

	_____________

	«___»_________________201_г.

	

	Москва 2010 г.

	
Содержание

	

	Структура таблицы

	Исходные данные

	Создание таблицы

	Алгоритм чтения таблицы PR

	Алгоритм чтения таблицы GL

	Создание пользовательского меню

	Решение

	Меню

	Вид формы и свойства элементов управления

	Вид формы с таблицей PR

	Вид формы с таблицей GL

	Справка 1

	Справка 2

	Справка 3

	Документ

	Заключение

	

	
Вариант 4

	

	Структура таблиц

	

	Таблица PR(предприятия)

	Код предприятия

	Наименование предприятия

	Численность персонала

	Объём выпускаемой продукции в руб.

	

	

	

	

	

	Таблица GL(обеспеченность жильем)

	Код предприятия

	Отсутствие жилья

	Нуждающиеся в улучшении

	Живущие далеко от предприятия

	

	

	

	

	

	В таблице GL данные приведены в % к общему количеству персонала.

	

	Состав меню:

	1. Распечатка исходных таблиц.

	2. Формирование и выдача справок:

	Справка 1. Наименование предприятий, объем выпуска продукции которых превышает 20 млн. рублей. Записи упорядочить по возрастанию численности персонала.

	

	Наименование предприятия

	Объём выпускаемой продукции в руб.

	

	

	

	Справка 2. Коды предприятий, в которых процент сотрудников, не имеющих жилья, превышает 15%. Записи упорядочить по убыванию процента сотрудников, не имеющих жилья.

	Справка 3. Сведения о предприятиях с количеством персонала, большим 5000 чел., в которых процент сотрудников, не имеющих жилья и нуждающихся в улучшении жилищных условий, превышает 20%.

	

	Наименование предприятия

	Численность персонала

	Объём выпускаемой продукции в руб.

	Отсутствие жилья

	Нуждающиеся в улучшении

	

	

	

	

	

	

	Создание документа:

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

	

	Наименование предприятия

	% сотрудников обеспеченных жильем

	Продукция на одного работающего (в руб.)

	

	

	

	

	Исходные данные

	

	Таблица PR

	

	
Таблица GL

	

	

	Создание Таблиц



Для создания Базы данных, в первую очередь, понадобится Окно формирования новой таблицы базы данных (Table Structure). Для этого в Главном Меню Главной панели проекта Visual Basic 6.0 следует выбрать опцию Add-Ins (Добавления или Модули), а в ней - команду Visual Data Manager.

При выполнении этой команды раскрывается Панель Приложения VisData- Панель Диспетчера баз данных Visual Basic 6.0.






Рисунок 1. Панель VisData

	

	

Рисунок 2. Заголовок Панели VisData



Выбрать меню File Панели Приложения VisData и команду New. В раскрывшемся подменю следует выбрать в качестве типа создаваемой базы данных Microsoft Access, а во втором подменю- Version 7.0 MDB, или иначе, выполнить последовательность команд:



File - New - Microsoft Access - Version 7.0 MDB



В результате раскроется Окно создания Нового файла базы данных Microsoft Access - Окно Select Microsoft Access Database To Create. Для открытия уже существующего файла базы данных необходимо вместо команды New воспользоваться командой Open Database.






Рисунок 3. Окно создания Нового файла Базы данных - Окно Select Microsoft Access Database To Create

	

В окне Имя файла указать имя каталога, в котором будет храниться создаваемая база. При этом на Панели Приложения VisData появится Окно базы данных (Окно Database Window) и Окно операторов SQL Statements (рис. 4).





Рисунок 4 .Панель Приложения VisData после появления на ней Окна Базы данных (Database Window) и Окна SQL Statements



В любом месте Окна Database Window необходимо щелкнуть правой клавишей мыши. В появившемся меню следует выбрать команду New Table (создать таблицу). Раскроется Панель Table Structure - Структура таблицы (рис. 5). Можно приступать к проектированию структуры таблицы.

	

Рисунок 5. Панель Table Structure



Проектирование структуры таблицы базы данных включает следующие шаги:

1. В поле Table Name (имя таблицы) ввести имя проектируемой таблицы - SM.

	

	


Рисунок 6. Панель Table Structure после внесения в окно Table Name

имени проектируемой таблицы SM



2. Раскрыть Диалоговое Окно Add Field (Добавить поле) на Панели Table Structure кнопкой Add Field - раскроется Диалоговое окно Add Field (Добавить поле).

	

	

Рисунок 7. Раскрытое диалоговое окно Add Field (Добавить поле)

3. С помощью Диалогового Окна Add Field осуществляется по очереди ввод характеристик всех полей создаваемой таблицы SM – вводятся имена полей, их типы и размеры полей.

	

	

Рисунок 8. Диалоговое окно Add Field для ввода сведений о полях проектируемой таблицы создаваемой базы данных



В поле Туре Окна Add Field по умолчанию указан тип вводимого данного - Text. При разработке приложения создания базы данных нам может понадобиться использование данных другого типа, что и осуществляется выбором стандартных типов с использованием клавиши окна Туре. В Visual Basic вы можете применять следующие типы данных:

числовой (integer, Long, Single, Double, Currency);

строковый (String);

типа дата (Date);

байтовый(Byte);

логический (Boolean);

произвольный (variant);

объектный (object).

Для хранения чисел в Visual Basic используется пять разных типов данных. Для хранения целочисленных данных будем использовать тип Integer, а для храпения десятичных чисел типы данных Single.

4. По окончании ввода всей информации поля создаваемой таблицы базы данных щелкнуть кнопку ОК диалогового окна Add Field Панели Table Structure. Поле добавляется в таблицу.

5. Добавим все необходимые поля тем же способом и нажмем кнопку Close, вернувшись в окно Table Structure.

6. Для завершения процесса проектирования таблицы создаваемой Базы Данных щелкается кнопка Build the Table (сформировать таблицу) на панели Table Structure, что приводит к закрытию окна Table Structure и возврату к Панели Приложения с окном Database Window, в котором представлена создаваемая База Данных, включающая пока только одну таблицу - таблицу PR.

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



	

Рисунок 9. Окно Database Window (Окно баш данных) Панели Приложения VisData со структурами таблиц PR и GL создаваемой базы данных.


Теперь таблицы нужно заполнить конкретными записями. Но если мы хотим, чтобы в дальнейшем записи таблиц БД автоматически упорядочивались по заданному полю, необходимо создать, так называемый, индекс таблицы. Для этого с помощью панели Add Index, ввести в поле окна Name имя поля, которое хотим сделать индексным, щелкнуть по нему, чтобы включить ею в список Indexed Fields.

Заполнение созданных таблиц БД исходными данными.

Щелчком правой кнопкой мыши по таблице PR или GL раскроем
контекстное меню выбора опций, являющееся узловым (начальным) инструментом разработки баз данных.

Выбрав опцию Open, раскроем окно Модификаций таблиц базы данных. Оно является исходным инструментом выбора видов работ (видов модификаций) с таблицами баз данных и содержит набор 8-и опций.



	

Рисунок 10. Окно Модификаций таблиц базы данных



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

Начинаем процесс заполнения указанных полей конкретными значениями первой записи. Нажимаем Add. Для перехода к следующему полю записи можно пользоваться клавишей Enter. По окончании заполнения всех полей первой записи щелкнуть на кнопке Update (Обновить) - в результате набранная запись будет физически записана в файл создаваемой базы данных, в таблицу PR и восстановится окно модификаций. Для перехода к новой записи - щелчок левой клавишей по кнопке Add. Нажатие кнопки Close после ввода последней записи завершает ввод записей в таблицу создаваемой Базы данных.

Аналогично создадим таблицу GL.




Алгоритм чтения таблицы PR



Начало



	

Flp.TextMatrix(I - 1, J - 1) = Text1(J-1)



Объявление переменных

Data1.Recordset.MoveFirst

K = Data1.Recordset.RecordCount

Flp.Rows = K + 1

Flp.Cols = 4

For I = 1 To K

For J = 1 To 4

For J = 1 To 4

For J = 1 To 4

Нет





I=1

	

Next J

Flp.TextMatrix(I - 1, J - 1) = Data1.Recordset.Fields(J - 1).Name

K = Data1.Recordset.MoveNext

Next I

End Sub

Да	

Алгоритм чтения таблицы GL



Начало



	

Flg.TextMatrix(I - 1, J - 1) = Text1(J-1)



Объявление переменных

Data1.Recordset.MoveFirst

K = Data1.Recordset.RecordCount

Flg.Rows = K + 1

Flg.Cols = 4

For I = 1 To K

For J = 1 To 4

For J = 1 To 4

For J = 1 To 4

Нет





I=1

	

Next J

Flg.TextMatrix(I - 1, J - 1) = Data1.Recordset.Fields(J - 1).Name

K = Data1.Recordset.MoveNext

Next I

End Sub

Да	

	Создание пользовательского меню



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

Использование большого количества командных кнопок связано с неудобствами. Возникает неясность в последовательности их активизации. Разумная альтернатива – создание собственного меню проекта. В системе проектирования VB 6.0 создание Меню осуществляется с помощью Редактора меню Menu Editor. Окно редактора открывается на активной форме тремя способами:

Главное Меню - Инструменты - Редактор меню (меню Editor);

Нажатием на линейке инструментов Главной панели системы VB 6.0 кнопки;

Нажатием клавиш CTRL + E



	

Рисунок 11. Окно редактора меню


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

Открываем окно редактора меню на Form1. Form1 используется как
основная. В окне редактора и осуществим конструирование Пользовательского меню.

После вызова редактора требуется заполнить его необходимыми данными. Сначала в окно Caption (заголовок) вводится имя пункта меню, под
которым оно будет выводиться в строке меню на форме. Для быстрого открытия меню в поле Заголовок можно указать т.н. горячую клавишу. Это делается записью амперсанда (&) перед соответствующей буквой.

Затем нажимаемся TAB и вводится в окно Имя уникальное имя пункта
Меню в программе. Оно должно состоять из следующих частей:

Префикса mnu, указывающего, что имя относится к меню;

Собственного имени.

Кроме свойств Заголовок, Имя элементы меню имеют еще три свойства, могущие принимать значение True/False:

Отмечено (Checked) —позволяет отметить выбранный элемент символом ,

Включено (Enabled) - позволяет включить или выключить команды
меню во время выполнения программы символом .

Видимо (Visible) -позволяет отобразить или скрыть отдельные элементы меню (вместо блокировки) символом 

Элементы конструирования структуры Меню позволяют:

устанавливать уровни Меню стрелками:

смещает элемент на уровень ниже,

смещает элемент на уровень выше, 

перемещают элементы в списке элементов одного уровня

перемещать указатель к следующему Меню («Дальше» (Next), добавлять пункт Меню («Вставить» (Insert), удалять пункт Меню («Удалить» (Delete)).



	

Рисунок 12. Созданное Меню в Окне Редактора



По завершении создания меню нажать ОК и созданное Меню появится
на форме Form1-отображается верхний Уровень Меню - Головное Меню.
Меню активное. Для раскрытия любого пункта меню достаточно мышкой
щелкнуть на выбранном пункте.

	

	Решение

	

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

	

	
Меню

	

	

	Рисунок 13. Пользовательское Меню

	

	Private Sub mnuVihod_Click()

	End

	End Sub

	

	Вид формы

	

	

	Рисунок 14 .Экранная форма Glav_Form, обеспечивающая просмотр таблиц, выдачи справок и выходного документа(с использованием Пользовательского меню)

	Свойства Glav_Form:

	

	Name= Glav_Form

	Caption= Курсовой проект Дегтярев Денис ГиМУ 1-4 №8.

	Height=6780

	Left=105

	LinkTopic=Form1

	ScaleHeight=5940

	ScaleWidth=13350

	Top=105

	Width=13590

	

	Пояснение

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

	Свойства Элемента Data1 (таблица PR,справка № 1,3 и документ):

	

	Name =Data1

	Caption = Data1_Таблица_PR

	Connect =Access

	DatabaseName = D:\кп\Курсовая 2\file 1.mdb

	Height = 495

	Left = 240

	RecordsetType =0 - Table

	RecordSource =PR

	Top = 1320

	Width = 6375

	

	Свойства элементов связанных с Data1(таблица PR,справка № 1,3 и документ):

	

	Text1(0)

	DataField = “Cod pr”

	DataSourse = Data1

	Height = 495

	Index =0

	Left = 240

	TabIndex = 9

	Top = 600

	Width = 1215

	Text1(1)

	DataField = “Name pr”

	DataSourse = Data1

	Height = 495

	Index =1

	Left = 1680

	TabIndex =8

	Top =600

	Width = 2175

	Text1(2)

	DataField = “Zis”

	DataSourse = Data1

	Height = 495

	Index =2

	Left = 4080

	TabIndex =7

	Top =600

	Width = 1215

	Text1(3)

	DataField = “V vip”

	DataSourse = Data1

	Height = 495

	Index =3

	Left = 5520

	TabIndex =6

	Top =600

	Width = 1335

	

	Свойства элементов Label (метка) для PR.

	

	Label1(0)

	Caption = «Код предприятия»

	Height = 255

	Index =0

	Left = 120

	TabIndex =21

	Top =240

	Width = 1335

	Label1(1)

	Caption = «Наименование предприятия»

	Height = 255

	Index =1

	Left = 1680

	TabIndex =20

	Top =240

	Width = 2175

	Label1(2)

	Caption = «Численность персонала»

	Height = 255

	Index =2

	Left = 4200

	TabIndex =19

	Top =240

	Width = 1095 

	Label1(3)

	Caption = «Объем выпуска продукции (в руб)»

	Height = 495

	Index =3

	Left = 5520

	TabIndex =18

	Top =240

	Width = 1335

	

	Свойства элемента MSFlexGrid и Label3 (таблица PR и справка № 2)

	

	MSFlexGrid

	Name =Flp

	Cools =2

	FixedCools =0

	FixedRows =1

	Height =1695

	Left =1080

	Rows =2

	TabIndex =5

	Top =2400

	Width =4335

	Label3

	Caption = « »Height = 255

	Left = 1080

	TabIndex =13

	Top =2040

	Width = 4335

	

	Свойства Элемента Data2 (таблица GL,справка № 2,3 и документ):

	

	Name =Data2

	Caption = Data2_Таблица_GL

	Connect =Access

	DatabaseName = D:\кп\Курсовая 2\file 1.mdb

	Height = 495

	Left = 7080

	RecordsetType =0 - Table

	RecordSource =GL

	Top = 1320

	Width = 5895

	

	Свойства элементов связанных с Data2(таблица GL,справка № 2,3 и документ):

	

	Text2(0)

	DataField = “Cod pr”

	DataSourse = Data2

	Height = 495

	Index =0

	Left = 7320

	TabIndex = 4

	Top = 600

	Width = 1315

	Text2(1)

	DataField = “Zis”

	DataSourse = Data2

	Height = 495

	Index =1

	Left = 8880

	TabIndex =3

	Top =600

	Width = 1455

	Text2(2)

	DataField = “Ul”

	DataSourse = Data2

	Height = 495

	Index =2

	Left = 10560

	TabIndex =2

	Top =600

	Width = 1215

	Text2(3)

	DataField = “Dal”

	DataSourse = Data2

	Height = 495

	Index =3

	Left = 11880

	TabIndex =1

	Top =600

	Width = 1335

	

	Свойства элементов Label (метка) для GL.

	

	Label2(0)

	Caption = «Код предприятия»

	Height = 255

	Index =0

	Left = 7320

	TabIndex =17

	Top =240

	Width = 1335

	Label2(1)

	Caption = «Отсутствие жилья»

	Height = 255

	Index =1

	Left = 8880

	TabIndex =16

	Top =240

	Width = 1455

	Label2(2)

	Caption = «Нуждающиеся в улучшении»

	Height = 435

	Index =2

	Left = 10560

	TabIndex =15

	Top =120

	Width = 1155

	Label2(3)

	Caption = «Живущие далеко от предприятия»

	Height = 495

	Index =3

	Left = 11880

	TabIndex =14

	Top =120

	Width = 1335

	

	Свойства элемента MSFlexGrid и Label4 (таблица GL и справка № 1)

	

	MSFlexGrid

	Name =Flg

	Cools =2

	FixedCools =0

	FixedRows =1

	Height =1695

	Left =1080

	Rows =2

	TabIndex =10

	Top =2400

	Width =4215

	Label4

	Caption = “ ”

	Height = 255

	Left = 8160

	TabIndex =12

	Top =2040

	Width = 3975

	

	Свойства элемента MSFlexGrid и Label5(справка №3 и документ)

	

	MSFlexGrid

	Name =Fls

	Cools =2

	FixedCools =0

	FixedRows =1

	Height =1575

	Left =4080

	Rows =2

	TabIndex =10

	Top =4320

	Width =5175

	Label5

	Caption = “ ”

	Height = 495

	Left = 1200

	TabIndex =11

	Top =4680

	Width = 2775

	

	Вид формы с таблицей PR

	

	

	Рисунок 15. Форма с таблицей PR.

	

	Private Sub mnuRs_PR_Click()

	Dim K As Integer

	Dim I As Integer, J As Integer

	Data1.Recordset.MoveFirst

	K = Data1.Recordset.RecordCount

	Label3.Caption = "Таблица Предприятия"

	Flp.Rows = K + 1

	Flp.Cols = 4

	For I = 1 To K

	For J = 1 To 4

	Flp.TextMatrix(I, J - 1) = Text1(J - 1)

	If I = 1 Then Flp.TextMatrix(I - 1, J - 1) = Data1.Recordset.Fields(J - 1).Name

	Next J

	Data1.Recordset.MoveNext

	Next I

	End Sub

	

	Форма с таблицей GL

	

	

	Рисунок 16. Вид формы с таблицей GL

	
Private Sub mnuRs_Gl_Click()

	Dim K As Integer

	Dim I As Integer, J As Integer

	K = Data1.Recordset.RecordCount

	Label4.Caption = "Таблица Обеспеченность жильём"

	Data2.Recordset.MoveFirst

	Flg.Rows = K + 1

	Flg.Cols = 4

	For I = 1 To K

	For J = 1 To 4

	Flg.TextMatrix(I, J - 1) = Text2(J - 1)

	If I = 1 Then Flg.TextMatrix(I - 1, J - 1) = Data2.Recordset.Fields(J - 1).Name

	Next J

	Data2.Recordset.MoveNext

	Next I

	End Sub

	

	Справка №1

	
Таблица PR

	

Да

Начало

Объявление переменных

Flg.Cols =3:KZ=0

Flg.Rows=1 =3

Label4.Caption = "Справка №1(по таблице PR)"

Flg.TextMatrix(0, 0)=Data1.Recordset.Fields(1).Name

Flg.TextMatrix(0, 1) = Data1.Recordset.Fields(3).Name

Data1.Recordset.MoveFirst

For I = 1 To Data1.Recordset.RecordCount

If Data1.Recordset.Fields(3).Value > 20000000 Then

Flg.Rows = Flg.Rows + 1

Kz = Flg.Rows - 1

Flg.TextMatrix(Kz, 0) = Data1.Recordset.Fields(1).Value

Flg.TextMatrix(Kz, 1) = Data1.Recordset.Fields(3).Value

Flg.TextMatrix(Kz, 2) = Data1.Recordset.Fields(2).Value

End If

Data1.Recordset.MoveNext

Next I

Нет

Задание столбцов гибкой сетки

Цикл по записям таблицы PR

Задание наименований столбцов в таблице Flg

Поиск записей, соответствующих требованию справки

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

	


Условие на тот случай если не будет найдено записей удовлетворя -ющих условие

If Kz > 1 Then

For I = 1 To Kz - 1

T=I

For L = I + 1 To Kz

If Val(Flg.TextMatrix(T, 2)) > Val(Flg.TextMatrix(L, 2)) Then T = L

Next L

If T < > I Then

For J = 0 To 2

Q = Flg.TextMatrix(I, J): Flg.TextMatrix(I, J) = Flg.TextMatrix(T, J)

Flg.TextMatrix(T, J) = Q

Next J

End If

Next I

End If

Flg.Cols = 2

If Kz = 0 Then Flg.TextMatrix(Kz, 0) = "Нет таких записей в таблице PR"

End Sub

Цикл упорядочивающий записи по возрастанию численности персонала

	
Private Sub mnuSpravka1_Click()

	Dim I As Integer, T As Integer, L As Integer, J As Integer

	Dim Kz As Integer

	Dim Q As Variant

	Flg.Cols = 3: Flg.Rows = 1: Kz = 0

	Label4.Caption = "Справка №1(по таблице PR)"

	Flg.TextMatrix(0, 0) = Data1.Recordset.Fields(1).Name

	Flg.TextMatrix(0, 1) = Data1.Recordset.Fields(3).Name

	Data1.Recordset.MoveFirst

	For I = 1 To Data1.Recordset.RecordCount

	If Data1.Recordset.Fields(3).Value > 20000000 Then

	Flg.Rows = Flg.Rows + 1: Kz = Flg.Rows - 1

	Flg.TextMatrix(Kz, 0) = Data1.Recordset.Fields(1).Value

	Flg.TextMatrix(Kz, 1) = Data1.Recordset.Fields(3).Value

	Flg.TextMatrix(Kz, 2) = Data1.Recordset.Fields(2).Value

	End If

	Data1.Recordset.MoveNext

	Next I

	If Kz > 1 Then

	For I = 1 To Kz - 1

	T = I

	For L = I + 1 To Kz

	If Val(Flg.TextMatrix(T, 2)) > Val(Flg.TextMatrix(L, 2)) Then T = L

	Next L

	If T <> I Then

	For J = 0 To 2

	Q = Flg.TextMatrix(I, J): Flg.TextMatrix(I, J) = Flg.TextMatrix(T, J)

	Flg.TextMatrix(T, J) = Q

	Next J

	End If

	Next I

	End If

	Flg.Cols = 2

	If Kz = 0 Then Flg.TextMatrix(Kz, 0) = "Нет таких записей в таблице PR"

	End Sub

	

	

	Рисунок 17. Вид справки №1

	

	Справка №2

	
Таблица GL

	

Задание столбцов гибкой сетки

Цикл по записям таблицы PR

Задание наименований столбцов в таблице Flp

Поиск записей, соответствующих требованию справки

Да

Начало

Объявление переменных

Flp.Cols =2:KZ=0

Flp.Rows=1 =3

Label3.Caption = "Справка №2(по таблице GL)"

Flg.TextMatrix(0, 0)=Data2.Recordset.Fields(0).Name

Data2.Recordset.MoveFirst

For I = 1 To Data2.Recordset.RecordCount

If Data2.Recordset.Fields(3).Value > 15 Then

Flp.Rows = Flp.Rows + 1

Kz = Flp.Rows - 1

Flp.TextMatrix(Kz, 0) = Data2.Recordset.Fields(0).Value

Flp.TextMatrix(Kz, 1) = Data2.Recordset.Fields(1).Value

End If

Data2.Recordset.MoveNext

Next I

Нет

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

	


Условие на тот случай если не будет найдено записей удовлетворя -ющих условие

Цикл упорядочивающий записи по возрастанию численности персонала

If Kz > 1 Then

For I = 1 To Kz - 1

T=I

If Val(Flp.TextMatrix(T, 1)) < Val(Flp.TextMatrix(L, 1)) Then T = L

For L = I + 1 To Kz

Next L

If T < > I Then

For J = 0 To 1

Q = Flp.TextMatrix(I, J): Flg.TextMatrix(I, J) = Flp.TextMatrix(T, J)

Flp.TextMatrix(T, J) = Q

Next J

End If

Next I

End If

Flp.Cols = 1

If Kz = 0 Then Flp.TextMatrix(Kz, 0) = "Нет таких записей в таблице GL"

End Sub

	
Private Sub mnuSpravka2_Click()

	Dim I As Integer

	Dim Kz As Integer

	Label3.Caption = "Справка №2(по таблице GL)"

	Flp.Cols = 2: Flp.Rows = 1: Kz = 0

	Flp.TextMatrix(0, 0) = Data2.Recordset.Fields(0).Name

	Data2.Recordset.MoveFirst

	For I = 1 To Data2.Recordset.RecordCount

	If Data2.Recordset.Fields(3).Value > 15 Then

	Flp.Rows = Flp.Rows + 1: Kz = Flp.Rows - 1

	Flp.TextMatrix(Kz, 0) = Data2.Recordset.Fields(0).Value

	Flp.TextMatrix(Kz, 1) = Data2.Recordset.Fields(1).Value

	End If

	Data2.Recordset.MoveNext

	Next I

	If Kz > 1 Then

	For I = 1 To Kz - 1

	T = I

	For L = I + 1 To Kz

	If Val(Flp.TextMatrix(T, 1)) < Val(Flp.TextMatrix(L, 1)) Then T = L

	Next L

	If T <> I Then

	For J = 0 To 1

	Flp.TextMatrix(T, J) = Q

	Next J

	End If

	Next I

	End If

	Flp.Cols = 1

	If Kz = 0 Then Flp.TextMatrix(Kz, 0) = "Нет таких записей в таблице GL"

	End Sub

	

	

	Рисунок 18. Вид справки №2

	

	Справка №3

	
Таблица PR и GL

	

Цикл по записям таблицы PR и GL

Задание наименований столбцов в таблице Fls

Да

Начало

Объявление переменных

Flp.Cols =5:Kz=0

Flp.Rows=1 =3

Label5.Caption = "Справка №3(по таблицам GL и PR)"

For I = 1 To Data1.Recordset.RecordCount

Fls.TextMatrix(0, 0) = Data1.Recordset.Fields(1).Name

 Fls.TextMatrix(0, 1) = Data1.Recordset.Fields(2).Name

 Fls.TextMatrix(0, 2) = Data1.Recordset.Fields(3).Name

 Fls.TextMatrix(0, 3) = Data2.Recordset.Fields(1).Name

 Fls.TextMatrix(0, 4) = Data2.Recordset.Fields(2).Name

Data1.Recordset.MoveFirst

Data2.Recordset.MoveFirst

For J = 1 To Data2.Recordset.RecordCount

If Data2.Recordset.Fields(0) = Data1.Recordset.Fields(0) Then

If Data1.Recordset.Fields(2). Value > 5000 And Data2.Recordset.Fields(1).Value > 20 And Data2.Recordset.Fields(2).Value > 20 Then

Да

Нет

Нет

Задание столбцов гибкой сетки

Поиск записей, соответствующих требованию справки

	


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

Fls.Rows = Fls.Rows + 1

Kz = Fls.Rows - 1

  Fls.TextMatrix(Kz, 0) = Data1.Recordset.Fields(1).Value

  Fls.TextMatrix(Kz, 1) = Data1.Recordset.Fields(2).Value             Fls.TextMatrix(Kz, 2) = Data1.Recordset.Fields(3).Value

  Fls.TextMatrix(Kz, 3) = Data2.Recordset.Fields(1).Value

  Fls.TextMatrix(Kz, 4) = Data2.Recordset.Fields(2).Value

End If

End If

Data2.Recordset.MoveNext

Next J

Data1.Recordset.MoveNext

Next I

End Sub

If Kz = 0 Then Fls.TextMatrix(Kz, 0) = "Нет записей удолетворяющих условие"

Условие на тот случай если не будет найдено записей удовлетворя -ющих условие

	

	Private Sub mnuSpravka3_Click()

	Dim I As Integer, J as Integer

	Dim Kz As Integer

	Label5.Caption = "Справка №3(по таблицам GL и PR)"

	Fls.Cols = 5: Fls.Rows = 1: Kz = 0

	Fls.TextMatrix(0, 0) = Data1.Recordset.Fields(1).Name

	Fls.TextMatrix(0, 1) = Data1.Recordset.Fields(2).Name

	Fls.TextMatrix(0, 2) = Data1.Recordset.Fields(3).Name

	Fls.TextMatrix(0, 3) = Data2.Recordset.Fields(1).Name

	Fls.TextMatrix(0, 4) = Data2.Recordset.Fields(2).Name

	Data1.Recordset.MoveFirst

	For I = 1 To Data1.Recordset.RecordCount

	Data2.Recordset.MoveFirst

	For J = 1 To Data2.Recordset.RecordCount

	If Data2.Recordset.Fields(0) = Data1.Recordset.Fields(0) Then

	If Data1.Recordset.Fields(2).Value > 5000 And Data2.Recordset.Fields(1).Value > 20 And Data2.Recordset.Fields(2).Value > 20 Then

	Fls.Rows = Fls.Rows + 1: Kz = Fls.Rows - 1

	Fls.TextMatrix(Kz, 0) = Data1.Recordset.Fields(1).Value

	Fls.TextMatrix(Kz, 1) = Data1.Recordset.Fields(2).Value

	Fls.TextMatrix(Kz, 2) = Data1.Recordset.Fields(3).Value

	Fls.TextMatrix(Kz, 3) = Data2.Recordset.Fields(1).Value

	Fls.TextMatrix(Kz, 4) = Data2.Recordset.Fields(2).Value

	End If

	End If

	Data2.Recordset.MoveNext

	Next J

	Data1.Recordset.MoveNext

	Next I

	If Kz = 0 Then Fls.TextMatrix(Kz, 0) = "Нет записей удовлетворяющих условие"

	End Sub

	

	


	Рисунок 18. Вид справки №3

	

	
Документ

	

Поиск записей, соответствующих требованию справки

Задание наименований столбцов в таблице Fls

Да

Начало

Объявление переменных

Flp.Cols =3:Kz=0

Flp.Rows=1 =3

Label5.Caption = "Документ"

For I = 1 To Data1.Recordset.RecordCount

Fls.TextMatrix(0, 0) = Data1.Recordset.Fields(1).Name

 Fls.TextMatrix(0, 1) = "% сотрудников обеспеченных жильем"

 Fls.TextMatrix(0, 2) = "Продукция на одного рабочего(в руб.)"

Data1.Recordset.MoveFirst

Data2.Recordset.MoveFirst

For J = 1 To Data2.Recordset.RecordCount

If Data2.Recordset.Fields(0) = Data1.Recordset.Fields(0) Then

If Data2.Recordset.Fields(1).Val- ue + Data2.Recordset.Fields (2).Value + Data2.Recordset. Fields(3).Value <= 30 Then

Да

Нет

Нет

Задание столбцов гибкой сетки

Цикл по записям таблицы PR и GL

	


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

Fls.Rows = Fls.Rows + 1

Kz = Fls.Rows - 1

End If

End If

Data2.Recordset.MoveNext

Next J

Data1.Recordset.MoveNext

Next I

End Sub

If Kz = 0 Then Fls.TextMatrix(Kz, 0) = "Нет записей удовлетворяющих условие"

Условие на тот случай если не будет найдено записей удовлетворя -ющих условие

Fls.TextMatrix(Kz, 0) = Data1.Recordset.Fields(1).Value



Fls.TextMatrix(Kz, 1) = 100 -(Data2.Recordset.Fields(1). Value + Data2.Recordset.Fields(2).Value + Data2. Recordset.Fields(3).Value)



Fls.TextMatrix(Kz, 2) = Data1.Recordset.Fields(3).Value / Data1.Recordset.Fields(2).Value

	

	Private Sub mnuDoc1_Click()

	Dim I As Integer, J as Integer

	Dim Kz As Integer

	Label5.Caption = "Документ"

	Fls.Cols = 3: Fls.Rows = 1: Kz = 0

	Fls.TextMatrix(0, 0) = Data1.Recordset.Fields(1).Name

	Fls.TextMatrix(0, 1) = "% сотрудников обеспеченных жильем"

	Fls.TextMatrix(0, 2) = "Продукция на одного рабочего(в руб.)"

	Data1.Recordset.MoveFirst

	For I = 1 To Data1.Recordset.RecordCount

	Data2.Recordset.MoveFirst

	For J = 1 To Data2.Recordset.RecordCount

	If Data2.Recordset.Fields(0) = Data1.Recordset.Fields(0) Then

	If Data2.Recordset.Fields(1).Value + Data2.Recordset.Fields(2).Value + Data2.Recordset.Fields(3).Value <= 30 Then

	Fls.Rows = Fls.Rows + 1: Kz = Fls.Rows - 1

	Fls.TextMatrix(Kz, 0) = Data1.Recordset.Fields(1).Value

	Fls.TextMatrix(Kz, 1) = 100 - (Data2.Recordset.Fields(1).Value + Data2.Recordset.Fields(2).Value + Data2.Recordset.Fields(3).Value)

	Fls.TextMatrix(Kz, 2) = Data1.Recordset.Fields(3).Value / Data1.Recordset.Fields(2).Value

	End If

	End If

	Data2.Recordset.MoveNext

	Next J

	Data1.Recordset.MoveNext

	Next I

	If Kz = 0 Then Fls.TextMatrix(Kz, 0) = "Нет записей удовлетворяющих условие"

	End Sub

	

	


	Рисунок 20. Документ

	

	
Заключение

	

	В данной курсовой работе по созданию и обработке Баз данных средствами Visual Basic 6.0, в разрабатываемом программном проекте я предпочел использовать пользовательское меню по следующим причинам:

	Отпадает необходимость создания отдельных экранных форм для решения каждой задачи программного проекта.

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

	На экранной форме проекта отсутствую командные кнопки, роль которых на себя берут пункты меню.

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

	Программный проект объединен в единое целое.