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

       

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


            Способ 1  основывается на использовании двумерных массивов. В эти массивы переносятся (передаются) значения полей таблиц Базы Данных.

             Шаги:

1.      В секции General Declaration модуля объявить глобальный динамический двумерный  массив B, соответствующий таблице Postavka, и глобальные переменные.

                      Public B() As Variant

          Public I%, J%, K%, P%, F%

                                 Замечание: В переменной типа Variant происходит внутреннее преобразование типов в соответствии с полученным значением. Пусть А – переменная этого типа.

Пример 1 :

                А = “123”              ‘тип String – содержит строку

                            А = А+5                ‘тип Integer – содержит число 123+5= 128

                            А = А& “_рублей”           ‘тип String – содержит “128_рублей”.

                                 Пример 2 : Если необходимо сравнивать числовые значения переменных А и В,                      имеющих тип Variant, то нужно указать это в виде:

If Val

(A) < Val (B) Then ….



2.      Создать форму:

Связанные элементы TextBox     

 

Элемент управления Data1

 

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

ListBox (элемент Lbl1)

ListBox (для вывода наимено-

ваний найденных изделий)

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

пуска программы передачи значений полей записей таблицы Postavka в массив B и в сетку Flp

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

(выход из программы)

 

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

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

 

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

 

     

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

 

На ней расположить:

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


-          элемент управления Data1;

             - кнопки:

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

                                                     массив В и в сетку Flp;

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

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

       – метку:

                     Lbl1 – надпись над элементом ListBox;

              - элемент ListBox для вывода наименований найденных изделий (с именем Lst1);

        - элемент MSFlexGrid с именем Flp (Microsoft FlexGrid Control 6.0) – для отображения таблицы Postavka.

  Элемент управления MSFlexGrid обеспечивает отображение на Экранной форме таблиц БД (двумерных массивов) и существенно облегчает пользователю общение с Базой Данных. В основном наборе панели элементов управления Toolbox он не содержится. Этот элемент включён в дистрибутивное хранилище дополнительных элементов управления Components, которое можно открыть либо, как это указано в Лекции 1, или выполнив последовательность команд:                

    Меню – Проект (Project)Компоненты … (Components) – окно Components

          В окне у компоненты Microsoft FlexGrid Control 6.0  поставить галочку       и нажать OK. На панели Toolbox появится элемент управления MSFlexGrid в виде 
 . Затем обычным способом вызвать элемент на экранную форму и установить его размеры.

         Основные свойства элемента MSFlexGrid (его часто называют гибкой сеткой):

        Name – имя гибкой сетки в программе (по умолчанию MSFlexGrid1). Можно задать

                         Flp;

          Rows – количество строк в сетке, начиная с нуля (задаётся в окне свойств элементов

                     управления, или в программе);

          Cols – количество столбцов в сетке, начиная с нуля (задаётся в окне свойств элементов

                   управления, или в программе);

 DataSource – устанавливает источник данных для MSFlexGrid, например,



                                                    DataSource = Postavka;

 Font – выбор шрифта для текста сетки;

При использовании элемента управления  MSFlexGrid  при работе с Базами Данных ( и двумерными массивами) удобно использовать его метод TextMatrix (I, J), позволяющий определять координаты ячейки таблицы Базы Данных или массива. Метод Sort обеспечивает  упорядочение строк считанной в гибкую сетку таблицы БД по заданному полю, если в программе записано выражение в виде:

<имя сетки MSFlexGrid > .Sort = <заданное поле сетки MSFlexGrid >

например, Flp.Sort = 1.

 

3.      Установить свойства элемента Data1:

                          *Name = Data1                                                       ‘имя элемента Data

                            Caption

= Таблица

Postavka                               ‘надпись на элементе Data1

                            Connect

= Access (или Excel, FoxPro и т.д.)    ‘тип Базы Данных

                          * DataBaseName = H:\ … - имя БД                     ‘полный путь к Базе Данных

               *RecordSource = Postavka                       ‘источник данных - имя текущей таблицы БД

               *RecordSetType = 0                       ‘режим обработки (0- из таблицы, где “*” – основные свойства элемента Data.

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

                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 (рис.6. 2).



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

 Private Sub Cmd1_Click ( )  ‘считывание

таблицы Postavka в массив В

и в сетку Flp

Data1.RecordSet.MoveFirst                ‘ переход на первую запись   

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

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

     ReDim B(1 To K, 1 To L)

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

For I = 1 To

K                 ‘по записям таблицы Postavka

 For J = 1 To L ‘по полям текущей записи

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

  B(I, J) = Text1(J-1) : Flp.TextMatrix(I, J-1) = B(I, J)   ‘или  = Text1(J-1)

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

Next J

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

Next I

End Sub

       

Private Sub Cmd2_Click ( )   ‘нахождение изделий, объёмы поставок которых

                                                    по кварталам монотонно падают            

             P = -1

        For I = 1 To K

             F = 0

           For J = 3 To 5

             If B(I, J) <= B(I, J+1) Then F=1

           Next J

             If F = 0 Then P = P+1 : Lst1.List(P) = B(I, 2)

          Next I

               If P = -1 Then Lbl1.Caption

= “нет таких изделий” _

                            Else

Lbl1.Caption = “искомые изделия”

        End Sub

        Private Sub Cmd3_Click ( )    ‘выход из Проекта  

             End

        End Sub

 

 


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