Лекция 3: 2 Для создания возможности использования объектов файловой системы нужно подключить библиотеку DLL, содержащую эти объекты: меню Разработать > Ccылки > Microsoft Scriptlet Component (сделать щелчок на соответствующем элементе управления CheckBox). Не могу найти меню Разработать (Develop)>Links и т.д. |
Базы данных
Использование элемента управления Data
Элемент управления Data обеспечивает связь проекта Visual Basic с файлом базы данных. Следующие свойства элемента управления Data используются при реализации связи, табл. 4.1.
Свойство | Пример значения свойства |
Connect | Access |
DatabaseName | A:\Studium.mdb ' имя базы данных |
RecordSource | software ' имя таблицы |
Для отображения/редактирования данных в простейшем случае может быть использовано текстовое поле, поле списка и т.д., при этом используются их свойства, данные в табл. 4.2:
Практическая работа 21. Базы данных; элемент управления Data (считать таблицу в двумерный массив и вывести на экран в массив поля списка). Использование стандартного модуля
Задание: создать таблицу базы данных, содержащую данные о 9 программных продуктах с полями: Hersteller - изготовитель, Typ - тип продукта, Preis - цена, Tendenz - тенденция, Anbieter - распространитель, Ort - местность, табл. 4.3:
Следует создать стандартный модуль для обеспечения использования переменных в (данном случае) в 2-х формах. Первую форму использовать для связи проекта с базой данных (использовать элементы управления Data и TextBox) и создания двумерного массива, соответствующего таблице базы данных. Вторую форму использовать для вывода двумерного массива на экран (в массив поля списка) и нахождения максимальной цены программного продукта.
Последовательность действий:
- Создать
- модуль
- на первой форме (рис.4.1): элементы управления Data и массив Text1(7) для вывода 7 полей таблицы на экран, 3 командные кнопки:
- для процедуры построчного считывания записей таблицы в двумерный массив,
- для процедуры разового считывания тех же данных в тот же массив,
- для перехода ко второй форме,
- на второй форме: массив List1 (9) для вывода данных двумерного массива на экран, элемент управления Label1, 2 командные кнопки для:
- процедуры вывода двумерного массива на экран в массив поля списка,
- процедуры нахождения максимальной цены продукта и вывода в поле Label1 результата,
- присвоить значения свойствам элемента управления Data и свойствам элементов массива текстового поля (примеры даны в табл. 4.1: и табл. 4.2:),
- описать переменные в области модуля и ввести код, данный ниже (пояснения даны под комментариями), стартовать проект
(General) (Declarations) ' описание двумерного массива, соответствующего ' таблице software базы данных Public mass(9, 6) As Variant Public i As Integer, j As Integer, k As Integer ' переменная-счетчик для работы с номерами записей ' таблицы Public n As Integer ' переменная для хранения максимальной цены продукта Public max As Integer
Form1
' Последовательное считывание данных таблицы software ' в массив текстового поля. Щелчком на правой ' кнопке элемента Data и последовательным ' нажатием командной кнопки Command1 (Caption = Lesen1) ' присвоить текущему элементу массива ' mass(n, j) текущее значение свойства Text ' элементов массива текстового поля Private Sub Command1_Click() mass (n, 1) = Text1(1): mass (n, 2) = Text1(2) mass (n, 3) = Text1(3): mass (n, 4) = Text1(4) mass (n, 5) = Text1(5): mass (n, 6) = Text1(6) n = n + 1 ' увеличить значение переменной-счeтчик на 1 End Sub ' автоматическое считывание данных в массив ' (Caption = Lesen2) Private Sub Command2_Click() For n = 0 To 8 mass (n, 1) = Text1(1): mass (n, 2) = Text1(2) mass (n, 3) = Text1(3): mass (n, 4) = Text1(4) mass (n, 5) = Text1(5):mass (n, 6) = Text1(6) ' MoveNext - метод, обеспечивающий автоматический ' переход к следующей записи Data1.Recordset.MoveNext Next n End Sub ' Методы MoveFirst, MoveLast, MoveNext, MovePrevious ' находят в указанном объекте Recordset соответствующую ' запись и делают еe текущей Private Sub Command3_Click() Unload Me Form2.Show End Sub
Form2
' вывод данных двумерного массива на экран в ' массив поля списка Private Sub Command1_Click() For i = 0 To 8 For j = 1 To 6 List1(i).List(j - 1) = mass (i, j) Next j, i End Sub ' нахождение максимальной цены продукта и вывод в ' поле метки результата Private Sub Command2_Click() max = mass(0,3) For k = 1 To 8 If mass (k, 3) > max Then max = mass (k, 3) Next k Label1.Caption = max End Sub