Freigeben über


TableDef.CreateIndex-Methode (DAO)

Gilt für: Access 2013, Office 2013

Erstellt ein neues Index-Objekt (nur Microsoft Access-Arbeitsbereiche). .

Syntax

Ausdruck . CreateIndex(Name)

Ausdruck Eine Variable, die ein TableDef-Objekt darstellt.

Parameter

Name

Erforderlich/optional

Datentyp

Beschreibung

Name

Optional

Variant

Ein String -Objekt, mit dem das neue Index -Objekt eindeutig benannt wird. Weitere Informationen zu gültigen Index -Namen erhalten Sie unter der Name -Eigenschaft.

Rückgabewert

Index

Hinweise

Mit der CreateIndex -Methode können Sie ein neues Index -Objekt für ein TableDef -Objekt erstellen. Wenn Sie den optionalen Namensteil bei der Verwendung von CreateIndex weglassen, können Sie eine entsprechende Zuweisungsanweisung verwenden, um die Name-Eigenschaft festzulegen oder zurückzusetzen, bevor Sie das neue Objekt an eine Auflistung anfügen. Ob Sie nach dem Anfügen des Objekts dessen Name -Eigenschaft festlegen können, hängt davon ab, welcher Objekttyp die Indexes -Auflistung enthält. Weitere Informationen finden Sie im Thema zur Name -Eigenschaft.

Wenn name auf ein Objekt verweist, das bereits ein Element der Auflistung ist, tritt bei Verwendung der Append-Methode ein Laufzeitfehler auf.

Wenn Sie ein Index -Objekt aus einer Auflistung entfernen möchten, verwenden Sie die Delete -Methode für die Auflistung.

Beispiel

Dieses Beispiel verwendet die CreateIndex -Methode, um zwei neue Index -Objekte zu erstellen, und fügt sie dann der Indexes -Auflistung des TableDef -Objekts der Employees-Tabelle (Personal) an. Anschließend führt es die Indexes-Auflistung des TableDef -Objekts, die Fields -Auflistung des neuen Index -Objekts und die Properties-Auflistung des neuen Index -Objekts auf. Zum Ausführen dieser Prozedur ist die CreateIndexOutput-Funktion erforderlich.

    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