Propriedade Index.Unique (DAO)
Aplica-se ao: Access 2013, Office 2013
Define ou retorna um valor que indica se objeto Index representa um índice (chave) exclusivo para uma tabela (somente em espaços de trabalho do Microsoft Access).
Sintaxe
expressão . Único
Expressão Uma variável que representa um objeto Index .
Comentários
Essa definição de propriedade será leitura/gravação até que objeto seja acrescentado a uma coleção; depois disso, será somente leitura.
Um índice exclusivo é composto de um ou vários campos que organizam, de forma lógica, todos os registros em uma tabela em uma ordem exclusiva e predefinida. Se o índice for composto de um campo, os valores desse campo deverão ser exclusivos para a tabela inteira. Se o índice for composto por mais de um campo, cada campo conterá os valores duplicados, mas cada combinação de valores de todos os campos indexados deverá ser exclusiva.
Se ambas as propriedades Unique e Primary de um objeto Index estiverem definidas como True, o índice será exclusivo e primário: identificará exclusivamente todos os registros da tabela em uma ordem lógica e predefinida. Se a propriedade Primary estiver definida como False, o índice será um índice secundário. Os índices secundários (ambos chave e não chave) organizam logicamente os registros em uma ordem predefinida sem servirem de identificadores para os registros de uma tabela.
Observação
- Não é necessário criar índices para tabelas mas, em tabelas grandes e não indexadas, o acesso a um registro específico pode demorar muito tempo.
- Os registros recuperados das tabelas sem os índices não são retornados em uma sequência específica.
- A propriedade Attributes de cada objeto Field no objeto Index determina a ordem dos registros e, consequentemente, determina as técnicas de acesso para uso desse objeto Index.
- Um índice exclusivo ajuda a otimizar a localização de registros.
- Os índices não afetam a ordem física de uma tabela base; Os índices afetam apenas como os registros são acessados pelo objeto Recordset do tipo tabela quando um determinado índice é escolhido ou quando o mecanismo de banco de dados do Microsoft Access cria objetos Recordset .
Exemplo
Este exemplo define a propriedade Unique de um novo objeto Index como True e acrescenta-o à coleção Indexes da tabela Funcionários. Em seguida, enumera a coleção Indexes da coleção TableDef e da coleção Properties de cada objeto Index. O novo objeto Index permitirá somente um registro com uma combinação específica de Country, LastName e FirstName no objeto TableDef.
Sub UniqueX()
Dim dbsNorthwind As Database
Dim tdfEmployees As TableDef
Dim idxNew As Index
Dim idxLoop As Index
Dim prpLoop As Property
Set dbsNorthwind = OpenDatabase("Northwind.mdb")
Set tdfEmployees = dbsNorthwind!Employees
With tdfEmployees
' Create and append new Index object to the Indexes
' collection of the Employees table.
Set idxNew = .CreateIndex("NewIndex")
With idxNew
.Fields.Append .CreateField("Country")
.Fields.Append .CreateField("LastName")
.Fields.Append .CreateField("FirstName")
.Unique = True
End With
.Indexes.Append idxNew
.Indexes.Refresh
Debug.Print .Indexes.Count & " Indexes in " & _
.Name & " TableDef"
' Enumerate Indexes collection of Employees table.
For Each idxLoop In .Indexes
Debug.Print " " & idxLoop.Name
' Enumerate Properties collection of each Index
' object.
For Each prpLoop In idxLoop.Properties
Debug.Print " " & prpLoop.Name & _
" = " & IIf(prpLoop = "", "[empty]", prpLoop)
Next prpLoop
Next idxLoop
' Delete new Index because this is a demonstration.
.Indexes.Delete idxNew.Name
End With
dbsNorthwind.Close
End Sub