Шаг 160 - Метод CreateIndex

Описание
Создает новый объект Index (только в рабочей области ядра Microsoft Jet).

Set индекс = таблица.CreateIndex (имя)

Параметры
индекс
Объектная переменная, задающая создаваемый индекс.
таблица
Объектная переменная, задающая объект TableDef, который используется для создания нового объекта Index.
имя
Необязательный. Выражение или переменная типа Variant (подтип String), содержащая уникальное имя нового объекта Index. Сведения о допустимых именах индексов приведены в разделе о свойстве Name.

Замечания
Метод CreateIndex используется при создании нового объекта Index для объекта TableDef. Если опустить необязательный аргумент имя при вызове метода CreateIndex, то можно воспользоваться подходящей инструкцией присваивания для задания или изменения значения свойства Name перед добавлением нового объекта в семейство. После добавления нового объекта в семейство возможность изменения значения свойства Name будет определяться типом объекта, содержащего семейство Indexes. Дополнительные сведения приведены в разделе, посвященном свойству Name.
Если аргумент имя указывает на объект, который уже добавлен в семейство, то при вызове метода Append возникает ошибка выполнения.
Для удаления объекта Index из семейства следует применить к семейству метод Delete.

Пример
Следующая программа использует метод CreateIndex для создания двух новых объектов Index, а затем добавляет их в семейство Indexes объекта TableDef "Сотрудники". Далее отображаются семейство Indexes объекта TableDef, семейства Fields новых Index и семейства Properties новых объектов Index. Для выполнения этой процедуры требуется функция CreateIndexOutput.

Sub CreateIndexX()

	Dim dbsNorthwind As Database
	Dim tdfEmployees As TableDef
	Dim idxCountry As Index
	Dim idxFirstName As Index
	Dim idxLoop As Index

	Set dbsNorthwind = OpenDatabase("Борей.mdb")
	Set tdfEmployees = dbsNorthwind!Сотрудники

	With tdfEmployees
		' Создает первый объект Index, создает и добавляет объекты
		' Field в объект Index, а затем добавляет объект
		' Index в семейство Indexes объекта TableDef.
		Set idxCountry = .CreateIndex("ИндексСтрана")
		With idxCountry
			.Fields.Append .CreateField("Страна")
			.Fields.Append .CreateField("Фамилия")
			.Fields.Append .CreateField("Имя")
		End With
		.Indexes.Append idxCountry
		' Создает второй объект Index, создает и добавляет объекты
		' Field в объект Index, а затем добавляет объект
		' Index в семейство Indexes объекта TableDef.
		Set idxFirstName = .CreateIndex
		With idxFirstName
			.Name = "ИндексИмя"
			.Fields.Append .CreateField("Имя")
			.Fields.Append .CreateField("Фамилия")
		End With
		.Indexes.Append idxFirstName
		' Обновляет семейство, чтобы обеспечить 
		' доступ к новым объектам Index.
		.Indexes.Refresh
		Debug.Print .Indexes.Count & " Индексы в " & 	.Name & " TableDef"
		' Отображает семейство Indexes.
		For Each idxLoop In .Indexes
			Debug.Print "    " & idxLoop.Name
		Next idxLoop
		' Печатает отчет.
		CreateIndexOutput idxCountry
		CreateIndexOutput idxFirstName
		' Удаляет новые объекты Index, созданные
		' только для демонстрации.
		.Indexes.Delete idxCountry.Name
		.Indexes.Delete idxFirstName.Name
	End With
	dbsNorthwind.Close

End Sub

Function CreateIndexOutput(idxTemp As Index)

	Dim fldLoop As Field
	Dim prpLoop As Property
	With idxTemp
		' Отображает семейство Fields объекта Index.
		Debug.Print "Поля в " & .Name
		For Each fldLoop In .Fields
			Debug.Print "    " & fldLoop.Name
			Next fldLoop
		' Отображает семейство Properties объекта Index.
		Debug.Print "Свойства " & .Name
		For Each prpLoop In .Properties
			Debug.Print "    " & prpLoop.Name & " - " & 	IIf(prpLoop = "", "[empty]", prpLoop)
		Next prpLoop
	End With
End Function

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 07.04.2002