Мир объектов Excel 2000


Добавление индексов


В следующем примере в таблицу "Книги" я добавляю два индекса, один из них связан с полем "Автор", другой - "Название_книги". Приведу процедуру, решающую задачу:

Public Sub AddIndex() 'Процедура добавляет индексы в таблицу "Книги" Dim myT As ADOX.Table 'таблица Dim myC1 As Column, myC2 As Column 'поля таблицы Dim myInd1 As New Index, myInd2 As New Index 'индексы таблицы 'Установить соединение с базой NewDB CreateConnection Cat1.ActiveConnection = Con1 'Связывание объекта Table с таблицей "Книги" Set myT = Cat1.Tables("Книги") Set myC1 = myT.Columns("Автор") Set myC2 = myT.Columns("Название_книги") 'Формирование индексов myInd1.Columns.Append (myC1) myInd1.Name = "Author" myInd1.PrimaryKey = False myInd1.Unique = False myInd1.Clustered = False

myInd2.Columns.Append (myC2) myInd2.Name = "Book" myInd2.PrimaryKey = False myInd2.Unique = False myInd2.Clustered = False

'Добавление индексов Call myT.Indexes.Append(myInd1) Call myT.Indexes.Append(myInd2) 'Отладочная печать Debug.Print "Число индексов =", myT.Indexes.Count For Each myInd1 In myT.Indexes Debug.Print "Имя индекса -", myInd1.Name Next myInd1

End Sub

Результаты отладочной печати для нее следующие:

Число индексов = 3 Имя индекса - Код_книги Имя индекса - Author Имя индекса - Book

Заметьте, индексов три, поскольку первый из них был создан автоматически в момент добавления ключа в таблицу.

Думаю, что в особых комментариях данная процедура не нуждается, поскольку работа с индексами ведется по той же схеме, что и при работе с ключами таблицы. Чтобы убедиться, что все работает должным образом, взгляните, как выглядит таблица "Книги", открытая в режиме конструктора:


Рис. 6.9.  Программно созданная таблица "Книги"



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