Exemplo da propriedade IndexNulls (VB)
Este exemplo demonstra a propriedade IndexNulls de um Index. O código cria um novo índice e define o valor de IndexNulls com base na entrada do usuário (de uma caixa de listagem chamada List1). Em seguida, o Índice é anexado à Tabela de Funcionários no Catálogo Northwind. O novo Index é aplicado a um Recordset com base na tabela Employees e o Recordset é aberto. Um novo registro é adicionado à tabela Employees, com um valor Null no campo indexado. Se esse novo registro é exibido ou não depende da configuração da propriedade IndexNulls.
' BeginIndexNullsVB
Private Sub cmdIndexNulls_Click()
IndexNullsX
End Sub
Sub IndexNullsX()
Dim cnn As New ADODB.Connection
Dim catNorthwind As New ADOX.Catalog
Dim idxNew As New ADOX.Index
Dim rstEmployees As New ADODB.Recordset
Dim varBookmark As Variant
' Connect the catalog.
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"data source=c:\Program Files\" & _
"Microsoft Office\Office\Samples\Northwind.mdb;"
Set catNorthwind.ActiveConnection = cnn
' Append Country column to new index
idxNew.Columns.Append "Country"
idxNew.Name = "NewIndex"
' Set IndexNulls based on user selection in listbox List1
Select Case List1.List(List1.ListIndex)
Case "Allow"
idxNew.IndexNulls = adIndexNullsAllow
Case "Ignore"
idxNew.IndexNulls = adIndexNullsIgnore
Case Else
End
End Select
'Append new index to Employees table
catNorthwind.Tables("Employees").Indexes.Append idxNew
rstEmployees.Index = idxNew.Name
rstEmployees.Open "Employees", cnn, adOpenKeyset, _
adLockOptimistic, adCmdTableDirect
With rstEmployees
' Add a new record to the Employees table.
.AddNew
!FirstName = "Gary"
!LastName = "Haarsager"
.Update
' Bookmark the newly added record
varBookmark = .Bookmark
' Use the new index to set the order of the records.
.MoveFirst
Debug.Print "Index = " & .Index & _
", IndexNulls = " & idxNew.IndexNulls
Debug.Print " Country - Name"
' Enumerate the Recordset. The value of the
' IndexNulls property will determine if the newly
' added record appears in the output.
Do While Not .EOF
Debug.Print " " & _
IIf(IsNull(!Country), "[Null]", !Country) & _
" - " & !FirstName & " " & !LastName
.MoveNext
Loop
' Delete new record because this is a demonstration.
.Bookmark = varBookmark
.Delete
.Close
End With
' Delete new Index because this is a demonstration.
catNorthwind.Tables("Employees").Indexes.Delete idxNew.Name
Set catNorthwind = Nothing
End Sub
' EndIndexNullsVB