Интегрированная среда VB 6.0 обработки баз данных


Способ (непосредственная обработка таблиц)


         В Способе 1 информационная связь между формами осуществляется через глобальные переменные, и в первую очередь, через массивы и Iz, доступные во всём Проекте.

        Система Visual Basic 6.0  не  может  осуществлять другой  связи между формами. Поэтому в  Способе 2, не использующем  глобальные массивы, мы вынуждены ограничиться одной объединённой формой (рис. 6.5), расположив на ней все элементы форм  Form1 (рис. 6.3)  и  Form2 (рис. 6.4)  Способа 1 (за исключением кнопок перехода Cmd3  и  Cmd6).

          Способ 2 основывается на использовании Методов элементов Data1 и  Data2

          Шаги:

1.      Выполнить пункты Способа 1:

         2 (на форме Form1 кнопка Cmd1 должна иметь надпись “Postavka в сетку Flp”), 3, 4, 5, 

         6 (кнопка Cmd5 должна иметь надпись “Izd в сетку Fli”), 7, 8, 9.

 

Способ (непосредственная обработка таблиц)

   

  Рис. 6.5.  Объединённая форма для работы с двумя таблицами Postavka и Izd

     

 

2.      Разработать процедуры Form1 (рис. 6.5).  

         Процедуры (1) и (2)  перепишутся в виде:

         Private Sub Cmd1_Click ( ) процедура (1), считывание таблицы Postavka  в сетку Flp

             Dim I%, J%, K%

             Data1.RecordSet.MoveFirst                 ‘переход на первую запись таблицы Postavka

             K= Data1.RecordSet.RecordCount      ‘количество записей таблицы Postavka

             L = Data1.RecordSet.Fields.Count       ‘количество полей таблицы Postavka

             Flp.Rows = K+1: Flp.Cols = L                ‘установление размеров сетки Flp

                                                                          For I = 1 To

K

                   For J = 1 To

L

   If  I=1 Then Flp. Flp.TextMatrix (I-1, J-1)=Data1.RecordSet.Fields(J-1). _

Name  

   Flp.TextMatrix

(I, J-1) = Text1(J-1) ‘или = Data1.RecordSet.Fields(J-1).Value

                       Next J

                       Data1.RecordSet.MoveNext            ‘переход к следующей записи


                 Next I

            End Sub

       

         Private Sub Cmd2_Click ( )  процедура (2), совместная обработка таблиц БД

             Dim St(1 To 4) As Single ‘ массив стоимости поставляемых изделий по кварталам 

             Dim  V!                              ‘V – общий вес изделий искомого шифра

             Dim I%, J%, F%, L% 

             V = 0

             For L = 1 To 4         ‘обнуление массива St

                    St(L) = 0

            Next L

            Data1.RecordSet.MoveFirst           ‘установка на

1-ю запись таблицы Postavka

                                                                                       For I = 1 To

Data1.RecordSet.RecordCount ‘по строкам таблицы Postavka

                                                                                              F=0         

                  Data2.RecordSet.MoveFirst     ‘установка на 1-ю запись таблицы Izd

                  For J = 1 To Data2.RecordSet.RecordCount

‘по строкам таблицы Izd

                         If  Data2.RecordSet.Fields(1).Value=Data1.RecordSet.Fields(1).Value Then

                                                                                          For

L = 1 To 4

                                                St(L)=St(L)+Data1.RecordSet.Fields(L+1).Value*  _

                                                             Data2.RecordSet.Fields(2).Value

                                                V = V + Data1.RecordSet.Fields(L+1).Value_

                                                                  Data2.RecordSet.Fields(3).Value

                                        Next L

                                        F=1 : Exit For 

                         End If

                         Data2.RecordSet.MoveNext          ‘к следующей записи таблицы Izd

                  Next J

                                                                                         If F = 0 Then Lbl2.Caption = “Таблицы не согласованы” : Exit Sub  



   аблицы не согласован                                                                Data1.RecordSet.MoveNext ‘к следующей записи таблицы Postavka

            Next I

            Lbl2.Caption = “Искомый вес=” & Str(V)

            For L=1 To 4

                   Lst1.List(L-1) = St(L)

            Next L

       End Sub

    

       Процедура  (4)  перепишется без изменений из п. 10.

       Процедура (5) будет выглядеть следующим образом:

       Private Sub Cmd1_Click ( )   ‘процедура (5), считывание таблицы Izd  в сетку Fli

                Dim I%, J%, K%

                Data2.RecordSet.MoveFirst               ‘переход на первую запись таблицы Izd

                K= Data2.RecordSet.RecordCount    ‘количество записей таблицы Izd

                L = Data2.RecordSet.Fields.Count     ‘количество полей  таблицы Izd  

Fli.Rows = K+1: Fli.Cols = L               ‘установление размеров сетки Flp

                For I = 1 To K     

                       For J = 1 To L

       If  I=1 Then Fli.TextMatrix

(I-1, J-1)=Data2.RecordSet.Fields(J-1). _

Name  

Fli.TextMatrix

(I, J-1) = Text2(J-1) ‘или = Data2.RecordSet.Fields(J-1).Value

                       Next J

                       Data2.RecordSet.MoveNext            ‘переход к следующей записи

                Next I

          End Sub

       Действия:  

                         - запустить Проект;

                   - нажать Cmd1  (считывание

таблицы Postavka  в сетку Flp);

                   -  нажать Cmd5 (считывание

таблицы  Izd  в сетку Fli);

                   - нажать Cmd2  (осуществляется совместная обработка таблиц Postavka и Izd);

                   - нажать Cmd4 (выход из Проекта).

  

 


Содержание раздела