IndexNulls プロパティの例 (VB)
この例は、Index の IndexNulls プロパティを示しています。 このコードでは、新しいインデックスを作成し、ユーザー入力に基づいて (List1 という名前のリスト ボックスから) IndexNulls の値を設定します。 次に、Index が Northwind Catalog の Employees Table に追加されます。 新しい Index が Employees テーブルに基づいて Recordset に適用され、Recordset が開きます。 インデックス付きフィールドに Null 値を含む新しいレコードが Employees テーブルに追加されます。 この新しいレコードが表示されるかどうかは、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