Поделиться через


Свойство 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