Свойство Index.IgnoreNulls (DAO)
Область применения: Access 2013, Office 2013
Задает или возвращает значение, указывающее, содержат ли записи индекса записей с значениями NULL в полях индекса (только для рабочих областей Microsoft Access).
Синтаксис
expression . IgnoreNulls
Выражение Переменная, представляющая объект Index .
Замечания
Это свойство выполняет чтение и запись для нового объекта Index, еще не добавленного в коллекцию, и только для чтения для существующего объекта Index в коллекции Indexes .
Чтобы ускорить поиск записей, можно определить индекс для поля. Если вы разрешаете записи null в индексированных полях и ожидаете, что многие из записей будут иметь значение NULL, можно задать для свойства IgnoreNulls для объекта Indexзначение True , чтобы уменьшить объем дискового пространства, который использует индекс.
Параметр свойства IgnoreNulls и обязательный параметр свойства вместе определяют, содержит ли запись с значением null индекса запись индекса.
Если значение IgnoreNulls равно |
И обязательный является |
Then |
---|---|---|
Верно. |
Неверно. |
В поле индекса допускается значение NULL; не добавлена запись индекса. |
Неверно. |
Неверно. |
В поле индекса допускается значение NULL; добавлена запись index. |
True или False |
Верно |
Значение NULL не допускается в поле индекса; не добавлена запись индекса. |
Пример
В этом примере свойству IgnoreNulls нового индекса присваивается значение True или False на основе введенных пользователем входных данных, а затем демонстрируется влияние на набор записей с записью, поле ключа которой содержит значение NULL .
Sub IgnoreNullsX()
Dim dbsNorthwind As Database
Dim tdfEmployees As TableDef
Dim idxNew As Index
Dim rstEmployees As Recordset
Set dbsNorthwind = OpenDatabase("Northwind.mdb")
Set tdfEmployees = dbsNorthwind!Employees
With tdfEmployees
' Create a new Index object.
Set idxNew = .CreateIndex("NewIndex")
idxNew.Fields.Append idxNew.CreateField("Country")
' Set the IgnoreNulls property of the new Index object
' based on the user's input.
Select Case MsgBox("Set IgnoreNulls to True?", _
vbYesNoCancel)
Case vbYes
idxNew.IgnoreNulls = True
Case vbNo
idxNew.IgnoreNulls = False
Case Else
dbsNorthwind.Close
End
End Select
' Append the new Index object to the Indexes
' collection of the Employees table.
.Indexes.Append idxNew
.Indexes.Refresh
End With
Set rstEmployees = _
dbsNorthwind.OpenRecordset("Employees")
With rstEmployees
' Add a new record to the Employees table.
.AddNew
!FirstName = "Gary"
!LastName = "Haarsager"
.Update
' Use the new index to set the order of the records.
.Index = idxNew.Name
.MoveFirst
Debug.Print "Index = " & .Index & _
", IgnoreNulls = " & idxNew.IgnoreNulls
Debug.Print " Country - Name"
' Enumerate the Recordset. The value of the
' IgnoreNulls 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.
.Index = ""
.Bookmark = .LastModified
.Delete
.Close
End With
' Delete new Index because this is a demonstration.
tdfEmployees.Indexes.Delete idxNew.Name
dbsNorthwind.Close
End Sub