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, в разрабатываемом программном проекте я предпочел использовать пользовательское меню по следующим причинам:
- Отпадает необходимость создания отдельных экранных форм для решения каждой задачи программного проекта.
- Намного упрощается работа с проектом, так как результаты отдельных задач проекта не обращаются к другим, формам.
- На экранной форме проекта отсутствую командные кнопки, роль которых на себя берут пункты меню.
- Управление проектом становиться гораздо проще, легче и даже комфортнее - устраняется неясность в последовательности активизации командных кнопок при выполнении программного проекта.
- Программный проект объединен в единое целое.