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

       

Обработка таблиц с использованием массивов, в которые переносятся элементы таблиц (Способ


             Шаги:

1.      В секции General Declaration модуля объявить динамические глобальные двумер-

ные массивы, соответствующие таблицам Postavka  и  Izd, и глобальные  переменные:

             Public P () As Variant

             Public Iz () As Variant

             Public I%, J%, KztP%, KztI%, L%, F%

2.      На форме Form1 расположить:

-        массив элементов TextBox(Text1(0)Text1(5)) для полей записей таблицы  Postavka (связанные объекты);

-        элемент данных Data1;

-        кнопки : Cmd1 – для запуска процедуры передачи значений полей записей

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

                                              Cmd2 – для запуска решения задачи;

                                              Сmd3 – для перехода на форму 2;

                                              Cmd4 – для выхода из Проекта;

-        метку надписи ”Стоимость” над элементом ListBox (с именем Lbl1);

-        метку для указания искомого веса или сообщения “Таблицы не  согласованы”  (с именем Lbl2);

-        элемент ListBox (с именем Lst1);

-        элемент MSFlexGrid (с именем Flp) для отображения таблицы Postavka;

Обработка таблиц с использованием массивов, в которые переносятся элементы таблиц (Способ
                                                                                                                            Связанные элементы TextBox

Обработка таблиц с использованием массивов, в которые переносятся элементы таблиц (Способ
Обработка таблиц с использованием массивов, в которые переносятся элементы таблиц (Способ
 Элемент управления Data1

Обработка таблиц с использованием массивов, в которые переносятся элементы таблиц (Способ
Обработка таблиц с использованием массивов, в которые переносятся элементы таблиц (Способ
                                                                                                                                                    

Lbl2(Указание искомого веса

 или сообщения – “Таблицы не

согласованы”)

Обработка таблиц с использованием массивов, в которые переносятся элементы таблиц (Способ
 

  Надпись над  элементом

  ListBox (элемент Lbl1)

Обработка таблиц с использованием массивов, в которые переносятся элементы таблиц (Способ
 

ListBox (для вывода определяемых


Обработка таблиц с использованием массивов, в которые переносятся элементы таблиц (Способ
     заданием сведений

Обработка таблиц с использованием массивов, в которые переносятся элементы таблиц (Способ
 

Обработка таблиц с использованием массивов, в которые переносятся элементы таблиц (Способ
Обработка таблиц с использованием массивов, в которые переносятся элементы таблиц (Способ
Обработка таблиц с использованием массивов, в которые переносятся элементы таблиц (Способ
Командная кнопка Cmd4

 выхода из  Проекта

Обработка таблиц с использованием массивов, в которые переносятся элементы таблиц (Способ
Командная кнопка Cmd3

      перехода на  форму Form2

Обработка таблиц с использованием массивов, в которые переносятся элементы таблиц (Способ
Обработка таблиц с использованием массивов, в которые переносятся элементы таблиц (Способ
 

Командная кнопка Cmd1

запуска                                 программы передачи значений полей


табли
Обработка таблиц с использованием массивов, в которые переносятся элементы таблиц (Способ
цы Postavka в массив P и  в

 MSFlexGrid – Гибкая сетка с именем Flp                                                   сетку Flp

Обработка таблиц с использованием массивов, в которые переносятся элементы таблиц (Способ
Обработка таблиц с использованием массивов, в которые переносятся элементы таблиц (Способ
                                                                                                                                Командная кнопка Cmd2

                                                                                                                                      запуска решения задачи

Обработка таблиц с использованием массивов, в которые переносятся элементы таблиц (Способ
Обработка таблиц с использованием массивов, в которые переносятся элементы таблиц (Способ
 Рис. 6.3.  Экранная форма для работы с БД с таблицей (Postavka)    

                                                                                                                        

                      

3.      Установить свойства объекта Data1:

                  Name = Data1

                  Caption = Tаблица Postavka

                  Connect = Access

                  DataBaseName =  “H:\ . . . . .” – полный путь к файлу

                  RecordSource = Postavka – имя таблицы – источник записей

                  RecordSetType = 0

4.      Установить свойства связанных элементов :

                  Name = Text1(0)

                  DataSource = Data1   - источник записей

                  DataField = ShIzd  - поле таблицы

                  Name = Text1(1)

                  DataSource = Data1

                  DataField = NameIzd

                     .  .  .

                  Name = Text1(5)

                  DataSource = Data1

                  DataField = Pkv4

5.      Установить основные свойства сетки MSFlexGrid, элементов ListBox и Label :

                        Name = Flp;          Name

= List1;           Name = Lbl1;       Name = Lbl2.

                       - элемент данных Data2;



6.      Создать Form2. На ней расположить:

-        массив элементов TextBox (Text2(0) …Text2(3)) для полей записей

      таблицы Izd  (связанные объекты);

 

Обработка таблиц с использованием массивов, в которые переносятся элементы таблиц (Способ
Связанные элементы

 TextBox       

Обработка таблиц с использованием массивов, в которые переносятся элементы таблиц (Способ
 

 

Обработка таблиц с использованием массивов, в которые переносятся элементы таблиц (Способ
Элемент управления Data2

Командная кнопка Cmd5 для

запуска процедуры передачи

Обработка таблиц с использованием массивов, в которые переносятся элементы таблиц (Способ
значений полей записей табли-

цы Izd в массив Iz и в сетку Fli

Обработка таблиц с использованием массивов, в которые переносятся элементы таблиц (Способ
Командная кнопка  Cmd6 для

Обработка таблиц с использованием массивов, в которые переносятся элементы таблиц (Способ
перехода  на форму  Frm1

Обработка таблиц с использованием массивов, в которые переносятся элементы таблиц (Способ
 

Обработка таблиц с использованием массивов, в которые переносятся элементы таблиц (Способ
Обработка таблиц с использованием массивов, в которые переносятся элементы таблиц (Способ
MSFlexGrid – гибкая сетка

        с именем FLi

Обработка таблиц с использованием массивов, в которые переносятся элементы таблиц (Способ
 

 

             Рис. 6.4. Экранная форма для работы с БД  (с таблицей Izd

                          - кнопки:

                            Cmd5 – для запуска процедуры передачи значений полей записей

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

                            Сmd6 – для перехода на форму Form1;

-        элемент MSFlexGrid (с именем Fli) для отображения нужных полей

-        таблицы Izd.

7.      Установить свойства объекта Data2:

                 Name = Data2

                 Caption = Tаблица Izd

                 Connect = Access

                 DataBaseName = “H:\ . . . . .”  – полный путь к файлу

                 RecordSource = Izd  – имя таблицы – источник записей

                 RecordSetType = 0

8.      Установить свойства связанных элементов:

                 Name = Text2(0)

                 DataSource = Data2   - источник записей

                 DataField = ShIzd  - поле таблицы

                 Name = Text2(1)

                 DataSource = Data2 

                 DataField = NameIzd

                 Name = Text2(2)

                 DataSource = Data2 

                 DataField = Cena

                 Name = Text2(3)

                 DataSource = Data2

                 DataField = Ves



9.      Установить свойства сетки MSFlexGrid :

                 Name = Fli

10.  Разработать  процедуры  Form1:

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

                                                        массив P   и в сетку Flp

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

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

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

                 ReDim P(1 To KztP, 1 To KptP)

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

                 For I = 1 To KztP

                        For J = 1 To KptP

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

     P(I, J) = Text1(J-1) : Flp.TextMatrix(I, J-1) = P(I, J)   ‘или  = 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 Sh As String

, V!  ‘Sh – шифр (изделия), V–общий вес изделий искомого шифра

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

               V = 0

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

                      St(L) = 0

               Next L

               For I = 1 To KtzP ‘по строкам таблицы Postavka

                                                       Sh = P(I, 1)   ‘В Sh заносится шифр изделия текущей строки таблицы Postavka

                      F = 0                 ‘флажок

                      For J = 1 To KztI                            ‘по строкам таблицы Izd



                                                                               If Iz (J, 1) = Sh Then           ‘равенство шифров в таблицах Postavka и Izd

                                  For L = 1 To 4

                                         St(L) = St(L) + P(I, L+2) * Iz(J,3)   ‘вычисление стоимости постав- _

                                                                                       ляемого искомого изделия по кварталам

                                         V = V + P(I, L+2) * Iz(J, 4) ‘вычисление общего веса изделия _

                                                                                        искомого шифра

                                  Next L

                                  F=1 : Exit For        ‘Таблицы согласованы. Данные получены. Флажок

                                                                        изменен  выход из цикла  J

                          End  If

                        Next J

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

                 Next I

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

                 For L=1 To 4

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

                 Next L

           End Sub

 

           Private Sub Form1.Cmd3_Click ( )  ‘     процедура (3)

               Form1.Hide                                    ‘спрятать форму Form1

               Form2.Show                                   ‘показать форму

Form2

           End Sub

         

Private Sub Form1.Cmd4_Click ( )            ‘процедура (4), выход из Проекта

               End                        

           End Sub

    Private Sub Cmd5_Click

( ) ‘процедура (5), считывание таблицы Izd в массив Iz _

                                                          и в сетку Fli

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



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

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

        ReDim Iz(1 To KztI, 1 To KptI)

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

        For I = 1 To KztI          ‘по строкам таблицы Izd

               For J = 1 To KptI

If  I = 1 Then  Fli.TextMatrix (I-1, J-1) = Data2.RecordSet.Fields(J-1).Name  

     Iz(I, J) = Text2(J-1) : Fli.TextMatrix(I, J-1) = Iz(I, J)   ‘или  = Text2(J-1), _

   или Data2.RecordSet.Fields(J-1).Value

               Next J

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

        Next I

   End Sub

 

 Private Sub Cmd6_Click ( )           

       Form2.Hide                                             ‘спрятать форму Form2

       Form1.Show                                           ‘показать форму

Form1

   End Sub

 

Действия:

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

               - на Form1 нажать Cmd1 ( выполняется процедура считывания таблицы Postavka  в

массив P

и в сетку Flp), затем Cmd3 (осуществляется переход на форму Form2);

            - на Form2 нажать Cmd5 (выполняется процедура считывания таблицы Izd в массив Iz и в сетку Fli),  затем Cmd6 (осуществляется переход на форму Form1);

            - на Form1 нажать Cmd2 (решение задачи);

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

-           


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