visual basic базы данных
В этой статье я рассмотрю работу с элементом Data, а также программное создание и редактирование баз данных.Для примера воспользуемся базой данных, поставляемой с VB - Biblio.mdb. Поставьте на форму элемент Data. В свойстве Connect выберете Access. В свойстве DataBaseName нужно указать путь к базе данных. В свойстве RecordSource нужно указать название таблицы в базе данных. Выберите Authors. Первый этап закончен. Теперь надо выбрать контрол, который будет отображать содержимое базы данных. Поместите на форму текстовое окошко. В свойстве DataSourse укажите ссылку на элемент Data - выберите Data1. В свойстве DataField нужно указать колонку. Выберите Author. Теперь можете запустить программу. В текстовом окошке появиться первая строчка в указанной колонке. Если Вы внесете изменения в нее, то база данных автоматически обновится и будет содержать внесенное Вами значение. Преимущество такого подхода состоит в следующем. Когда база данных очень большая, то чтобы сохранить ее целиком понадобится определенное время. При таком же подходе изменения вносятся сразу. Чтобы перейти к следующей записи на элементе Data нужно нажать кнопку




Теперь рассмотрим программное создание и редактирование баз данных. Для работы с базами данных требуется библиотека Microsoft DAO 3.5 Object Library. При добавлении элемента Data она автоматически подключается к проекту. Иначе ее нужно выбрать в Object Browser. Теперь добавьте компонент Microsoft FlexGrid Control. В свойствах укажите Cols=3 и Rows=10. Заполним ячейки сетки произвольными значениями (не считая фиксированной строки и колонки сетки) создадим базу данных и сохраним в ней значения сетки.
Dim i As IntegerDim WorkSpace As WorkSpaceDim DataBase As DataBaseDim TableDef As TableDefDim Field1 As FieldDim Field2 As FieldDim Recordset As Recordset" Запускаем генератор случайных чиселRandomize Timer" Заполняем сетку произвольными значениямиFor i = 1 To 9MSFlexGrid1.TextMatrix(i, 1) = Int(Rnd * 10)MSFlexGrid1.TextMatrix(i, 2) = Int(Rnd * 10)NextSet WorkSpace = DBEngine.Workspaces(0)" Создаем базу данных с названием TestDatabase.mdbSet DataBase = WorkSpace.CreateDatabase("TestDatabase.mdb", dbLangGeneral)" Создаем таблицу с названием TestTableSet TableDef = DataBase.CreateTableDef("TestTable")" Создаем 2 колонки с названиями Колонка_1 и Колонка_2Set Field1 = TableDef.CreateField("Колонка_1", dbText)Set Field2 = TableDef.CreateField("Колонка_2", dbText)" Свойство AllowZeroLength = True позволяет" вводить пустые строкиField1.AllowZeroLength = TrueField2.AllowZeroLength = True" Выбираем размер полей. Он определяет максимальное количество символов," которое может содержать ячейкаField1.Size = 20Field2.Size = 20" Добавляем созданные колонки в таблицуTableDef.Fields.Append Field1TableDef.Fields.Append Field2" Добавляем созданную таблицу в базу данныхDataBase.TableDefs.Append TableDef" Открываем таблицу TestTableSet Recordset = DataBase.OpenRecordset("TestTable")For i = 1 To 9" Добавляем новую строкуRecordset.AddNew" Записываем в базу данных значения ячеек MSFlexGridRecordset(0) = MSFlexGrid1.TextMatrix(i, 1)Recordset(1) = MSFlexGrid1.TextMatrix(i, 2)" Аналогично можно было записать" Recordset!Колонка_1 = MSFlexGrid1.TextMatrix(i, 1)" Recordset!Колонка_2 = MSFlexGrid1.TextMatrix(i, 2)" или" Recordset.Fields(0) = MSFlexGrid1.TextMatrix(i, 1)" Recordset.Fields(1) = MSFlexGrid1.TextMatrix(i, 2)" или" Recordset.Fields!Колонка_1 = MSFlexGrid1.TextMatrix(i, 1)" Recordset.Fields!Колонка_2 = MSFlexGrid1.TextMatrix(i, 2)" Обновляем записьRecordset.UpdateNext" Закрываем базу данныхRecordset.CloseDataBase.CloseТеперь чтобы изменить значения в созданной базе данных введите следующий код
Dim i As IntegerDim WorkSpace As WorkSpaceDim DataBase As DataBaseDim Recordset As Recordset" Запускаем генератор случайных чиселRandomize Timer" Заполняем сетку произвольными значениямиFor i = 1 To 9MSFlexGrid1.TextMatrix(i, 1) = Int(Rnd * 10)MSFlexGrid1.TextMatrix(i, 2) = Int(Rnd * 10)NextSet WorkSpace = DBEngine.Workspaces(0)" Открываем базу данных TestDatabase.mdbSet DataBase = WorkSpace.OpenDatabase("TestDatabase.mdb")" Открываем таблицу TestTableSet Recordset = DataBase.OpenRecordset("TestTable")" Переходим к первой записиRecordset.MoveFirstFor i = 1 To 9Recordset.Edit" Записываем в базу данных значения ячеек MSFlexGridRecordset(0) = MSFlexGrid1.TextMatrix(i, 1)Recordset(1) = MSFlexGrid1.TextMatrix(i, 2)" Обновляем записьRecordset.Update" Переходим к следующей записиRecordset.MoveNextNext" Закрываем базу данныхRecordset.CloseDataBase.CloseТеперь считаем значения из базы данных
Dim i As IntegerDim WorkSpace As WorkSpaceDim DataBase As DataBaseDim Recordset As RecordsetSet WorkSpace = DBEngine.Workspaces(0)" Открываем базу данных TestDatabase.mdbSet DataBase = WorkSpace.OpenDatabase("TestDatabase.mdb")" Открываем таблицу TestTableSet Recordset = DataBase.OpenRecordset("TestTable")" Устанавливаем число колонок MSFlexGrid1" в соответствии с числом строк в таблицеRecordset.MoveLastMSFlexGrid1.Rows = Recordset.RecordCount + 1" Записываем в первую строчку MSFlexGrid1 названия колонок таблицыMSFlexGrid1.TextMatrix(0, 1) = Recordset.Fields(0).NameMSFlexGrid1.TextMatrix(0, 2) = Recordset.Fields(1).Name" Переходим к первой записиRecordset.MoveFirstFor i = 1 To MSFlexGrid1.Rows - 1" Записываем значения ячеек таблицы в MSFlexGrid1MSFlexGrid1.TextMatrix(i, 1) = Recordset(0)MSFlexGrid1.TextMatrix(i, 2) = Recordset(1)" Переходим к следующей записиRecordset.MoveNextNext" Закрываем базу данныхRecordset.CloseDataBase.Close