Compartir a través de


Método TableDef.CreateIndex (DAO)

Se aplica a: Access 2013, Office 2013

Crea un nuevo objeto Index (solo áreas de trabajo de Microsoft Access). .

Sintaxis

expresión . CreateIndex(Name)

expression Variable que representa un objeto TableDef.

Parameters

Nombre

Obligatorio/opcional

Tipo de datos

Descripción

Name

Opcional

Variant

String que identifica inequívocamente el nuevo objeto Index. Vea el tema relativo a la propiedad Name para obtener información detallada sobre los nombres de Index válidos.

Valor devuelto

Índice

Comentarios

Puede utilizar el método CreateIndex para crear un nuevo objeto Index para un objeto TableDef. Si omite la parte de nombre opcional al usar CreateIndex, puede usar una instrucción de asignación adecuada para establecer o restablecer la propiedad Name antes de anexar el nuevo objeto a una colección. Después de agregar el objeto, podrá o no establecer su propiedad Name en función del tipo de objeto que contenga la colección Indexes. Vea el tema correspondiente a la propiedad Name para obtener más información.

Si name hace referencia a un objeto que ya es miembro de la colección, se produce un error en tiempo de ejecución cuando se usa el método Append .

Para quitar un objeto Index de una colección, utilice el método Delete en la colección.

Ejemplo

En este ejemplo se utiliza el método CreateIndex para crear dos objetos Index nuevos y agregarlos después a la colección Indexes del objeto TableDef de empleados. A continuación, se enumera la colección Indexes del objeto TableDef, la colección Fields de los nuevos objetos Index y la colección Properties de los nuevos objetos Index. Se requiere la función CreateIndexOutput para que pueda ejecutarse este procedimiento.

    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