Сделай Сам Свою Работу на 5

Связанный с данными элемент управления Grid





Grid - один из наиболее гибких и мощных элементов управления Visual Basic. Все, что нужно сделать для заполнения элемента Grid из RecordSet, - это присвоить его свойству DataSource наименование элемента управления Data. Сетка будет заполнена строками из RecordSet. Благодаря двумерному расположению данных в элементе управления Grid можно увидеть реальную структуру и содержание всего RecordSet.

Ранее в этой главе для экспериментов с SQL-операторами использовалось приложение SQLExec. Создадим это приложение. Для этого выполните следующие действия.

1.Откройте новый проект Standard EXE.

2. Чтобы добавить связанный с данными элемент управления Grid на панель Toolbox, выполните щелчок правой кнопкой мыши на Toolbox и выберите вкладку Components.

3. B диалоговом окне Components установите переключатель на Microsoft Data Bound Grid Control. В этом проекте используется элемент управления Common Dialogs, поэтому установите переключатель Microsoft Common Dialogs Control 5.0 и щелкните на кнопке Close.

4. Создайте элементы управления (рис. 16). Кроме видимых элементов управления в форме расположен элемент управления Common Dialogs и элемент управления Data1, у которого свойство Visible установлено в False.



Рис. 16. Приложение SQLExec

5. Элемент управления TextBox, с помощью которого вводятся SQL-операторы, называется txtSQL. Установите его свойство MultiLine в True, а свойство Scrollbars - в 2 (Vertical).

 

Код программы приложения SQLExec:

Private Sub DBOpen_Click()

On Error GoTo NoDatabase

txtSQL = ""

Data1.RecordSource = ""

CommonDialog1.Filter = "Databases|*.MDB"

CommonDialog1.ShowOpen

Data1.DatabaseName = CommonDialog1.FileName

Label1.Caption = CommonDialog1.FileName

Data1.Refresh

Exit Sub

NoDatabase:

DBGrid1.Visible = False

MsgBox Err.Description

End Sub

Private Sub ExecuteSQL_Click()

On Error GoTo SQLError

Data1.RecordSource = txtSQL

Data1.Refresh

DBGrid1.Visible = True

Exit Sub

SQLError:

DBGrid1.Visible = False

MsgBox Err.Description

End Sub

 

Код кнопки Open Database открывает стандартное диалоговое окно File Open (здесь используеся элемент управления Common Dialogs), в котором можно выбрать БД. Имя БД отображается на элементе управления Label рядом с кнопкой Command. Кнопка Execute SQL (выполнить запрос) выбирает SQL-оператор из текстового поля txtSQL и присваивает его свойству RecordSource элемента управления Data1. Оператор On Error определяет любую ошибку при выполнении SQL-оператора и отображает информацию о ней в окне сообщений. Присваивание нового значения свойству RecordSource элемента управления не модифицирует его содержимого. Чтобы прочитать новые данные из БД и принудительно выполнить модификацию, вызывается метод Refresh элемента управления Data.



ОТОБРАЖЕНИЕ БАЗ ДАННЫХ

Объект Database

В предыдущих параграфах рассматривалось содержимое БД и недостаточно внимания уделялось ее структуре. Даже если известна структура БД, то в ряде случаев может потребоваться определение характеристик ее объектов из кода приложения. Например, может понадобиться информация о том, сколько полей содержит конкретная таблица или как определен индекс.

Объектом верхнего уровня является объект Database, который задает БД. Чтобы создать объект Database необходимо объявить переменную.

 

Dim DB As Database

 

Объект Database присваивается переменной DBс помощью функции OpenDatabase, которой в качестве параметра передается в виде строки путь к БД и которая возвращает объект Database.

 

Set DB = OpenDatabase(dbName)

 

Каждая таблица в БД задается объектом TableDef, а запрос - объектом QueryDef. Каждый из них имеет собственные свойства, подобные Name (имя таблицы или запроса) и Count (число таблиц в объекте TableDef или количество запросов в объекте QueryDef).

 

Объект TableDef: определение таблиц

Объект TableDef имеет следующие наиболее важные свойства:

Count - возвращает число строк в таблице.

Fields - семейство объектов Field. Каждый объект Field задает поле в таблице.

Indexes - семейство объектов Index. Каждый объект Index задает индекс таблицы.

Для обращения к отдельным таблицам БД можно использовать семейство таблиц DB.TableDefs. При этом необходимо объявить переменную TableDef:



 

Dim tbl As TableDef

 

а затем обратиться к конкретной таблице в БД, указав номер в TableDefs, который равен 0 для первой таблицы, 1 - для второй и т.д. Для вывода имени первой таблицы необходимо создать объект TableDef и вывести его свойство Name

 

Set tbl = DB.TableDefs(0)

Debug.Print tbl.Name

 

Вместо номера можно использовать имя таблицы:

 

DB.TableDefs ("Titles")

 

Для обращения к отдельным таблицам эффективно использовать цикл For Each...Next. В частности отображение имен таблиц БД можно выполнить с помощью кода:

For Each tbl In DB.TableDefs

Debug.Print tbl.Name

Next

 

Идексы таблицы

Большинство таблиц в БД имеют индексные файлы. Для доступа к индексам таблицы предназначено свойство Indexes объекта TableDefs. Свойство Indexes - это семейство объектов, каждый из которых соответствует одному индексу таблицы. Чтобы самым простым способом реализовать обращение к каждому индексу в таблице необходимо объявить объект Index:

 

Dim idx As Index

Затем просмотреть каждый элемент семейства Indexes с помощью цикла For Each...Next:

For Each idx In tbl.Indexes

Debug.Print idx.Name

Next

 

Следующий вложенный цикл отображает имена всех таблиц в БД и имена индексов по каждой таблице:

 

For Each tbl In DB.TableDefs

Debug.Print tbl.Name

For Each idx In tbl.Indexes

Debug.Print idx.Name

Next idx

Next tbl

С помощью свойства Unique можно определить является ли индекс уникальным.

 

Поля таблицы

Наиболее важное свойство объекта TableDefs - свойство Fields (Поля), объединяющее семейство объектов, каждый из которых соответствует полю таблицы. Чтобы обратиться к каждому полю в семействе Fields, объявите объектную переменную Field и просмотрите семейство с помощью цикла For Each…Next. Следующий фрагмент кода отображает имена и типы каждого поля в первой таблице БД:

Dim fld As Field

For Each fld In DB.TableDefs (0) .Fields

Debug.Print fid.Name, fld.Type

Next

Другие свойства объекта Field:

OrdinalPosition. Определяет порядок полей в таблице.

AllowZeroLength. Булевое свойство, указывающее, может ли поле содержать пустую строку.

Size. Размер поля в байтах.

• Value.Текущее значение поля.

 

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.