Смекни!
smekni.com

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

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



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



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


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


Документ


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, в разрабатываемом программном проекте я предпочел использовать пользовательское меню по следующим причинам:

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

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

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

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

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