Метод TableDef.CreateIndex (DAO)
Область применения: Access 2013, Office 2013
Создает объект Index (только для рабочих областей Microsoft Access). .
Синтаксис
expression . CreateIndex(Name)
выражение: переменная, представляющая объект TableDef.
Параметры
Имя |
Обязательный/необязательный |
Тип данных |
Описание |
---|---|---|---|
Name |
Необязательно заполнять. |
Variant |
Строка, которая однозначно присваивает имя новому объекту Index. Сведения о допустимых именах индексов см. в свойстве Name. |
Возвращаемое значение
Index
Замечания
Метод CreateIndex можно использовать для создания нового объекта Index для объекта TableDef . Если при использовании CreateIndex опустить необязательную часть имени, можно использовать соответствующую инструкцию присваивания, чтобы задать или сбросить свойство Name перед добавлением нового объекта в коллекцию. После добавления объекта вы можете задать или не сможете задать его свойство Name в зависимости от типа объекта, содержащего коллекцию Indexes . Дополнительные сведения см. в разделе Свойство Name .
Если имя ссылается на объект, который уже является членом коллекции, при использовании метода Append возникает ошибка во время выполнения.
Чтобы удалить объект Index из коллекции, используйте метод Delete в коллекции.
Пример
В этом примере метод CreateIndex используется для создания двух новых объектов Index , а затем добавляет их в коллекцию Indexes объекта Employees 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("Northwind.mdb")
Set tdfEmployees = dbsNorthwind!Employees
With tdfEmployees
' Create first Index object, create and append Field
' objects to the Index object, and then append the
' Index object to the Indexes collection of the
' TableDef.
Set idxCountry = .CreateIndex("CountryIndex")
With idxCountry
.Fields.Append .CreateField("Country")
.Fields.Append .CreateField("LastName")
.Fields.Append .CreateField("FirstName")
End With
.Indexes.Append idxCountry
' Create second Index object, create and append Field
' objects to the Index object, and then append the
' Index object to the Indexes collection of the
' TableDef.
Set idxFirstName = .CreateIndex
With idxFirstName
.Name = "FirstNameIndex"
.Fields.Append .CreateField("FirstName")
.Fields.Append .CreateField("LastName")
End With
.Indexes.Append idxFirstName
' Refresh collection so that you can access new Index
' objects.
.Indexes.Refresh
Debug.Print .Indexes.Count & " Indexes in " & _
.Name & " TableDef"
' Enumerate Indexes collection.
For Each idxLoop In .Indexes
Debug.Print " " & idxLoop.Name
Next idxLoop
' Print report.
CreateIndexOutput idxCountry
CreateIndexOutput idxFirstName
' Delete new Index objects because this is a
' demonstration.
.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
' Enumerate Fields collection of Index object.
Debug.Print "Fields in " & .Name
For Each fldLoop In .Fields
Debug.Print " " & fldLoop.Name
Next fldLoop
' Enumerate Properties collection of Index object.
Debug.Print "Properties of " & .Name
For Each prpLoop In .Properties
Debug.Print " " & prpLoop.Name & " - " & _
IIf(prpLoop = "", "[empty]", prpLoop)
Next prpLoop
End With
End Function