Описание
Возвращает значение, показывающее количество уникальных значений в объекте Index, являющемся частью присоединенной таблицы (только в рабочей области Microsoft Jet).
Значение
Возвращаемое значение имеет тип Long.
Замечания
Свойство DistinctCount позволяет определить количество уникальных значений, т.е. ключей, в индексе. Любой ключ подсчитывается только один раз, несмотря на возможность наличия повторяющихся значений в индексе, не являющемся уникальным. Данные сведения оказываются полезными в приложениях, в которых делается попытка оптимизировать доступ к данным с помощью информации, содержащейся в индексе. Число уникальных значений иногда называют мощностью или кардинальным числом объекта Index.
Значение свойства DistinctCount не всегда отражает реальное количество ключей, существующих в конкретный момент времени. Например, изменения этого значения, вызванные отменой транзакции, могут быть не сразу отражены в значении этого свойства. Кроме того, свойство DistinctCount может не отражать результаты удаления записей, содержащих уникальные ключи. Точное значение будет получено сразу после применения метода CreateIndex.
Пример
Следующая программа использует свойство DistinctCount для демонстрации определения числа уникальных значений в объекте Index. Однако данное значение является точным только сразу после создания объекта Index. Это значение останется точным, пока не будут изменены ключи, добавлены новые или удалены старые ключи. (При повторном выполнении данной процедуры пользователь имеет возможность увидеть результаты изменения значения свойства DistinctCount для существующих объектов Index).
Sub DistinctCountX() Dim dbsNorthwind As Database Dim tdfEmployees As TableDef Dim idxCountry As Index Dim idxLoop As Index Dim rstEmployees As Recordset Set dbsNorthwind = OpenDatabase("Борей.mdb") Set tdfEmployees = dbsNorthwind!Сотрудники With tdfEmployees ' Создает и добавляет новый объект Index ' в таблицу "Сотрудники". Set idxCountry = .CreateIndex("ИндексСтрана") idxCountry.Fields.Append idxCountry.CreateField("Страна") .Indexes.Append idxCountry ' Чтобы новое значение свойства DistinctCount стало ' доступным, необходимо обновить семейство. .Indexes.Refresh ' Отображает семейство Indexes, чтобы показать ' текущие значения свойства DistinctCount. Debug.Print "Семейство Indexes до добавления записи" For Each idxLoop In .Indexes Debug.Print " DistinctCount = " & _ idxLoop.DistinctCount & ", Name = " & idxLoop.Name Next idxLoop Set rstEmployees = dbsNorthwind.OpenRecordset("Сотрудники") ' Добавляет новую запись в таблицу "Сотрудники". With rstEmployees .AddNew !Имя = "Петр" !Фамилия = "Петров" !Страна = "Чад" .Update End With ' Отображает семейство Indexes, чтобы показать ' измененные значения свойства DistinctCount. Debug.Print "Семейство Indexes после добавления записи " & "и обновления семейства" .Indexes.Refresh For Each idxLoop In .Indexes Debug.Print " DistinctCount = " & _ idxLoop.DistinctCount & ", Имя = " & idxLoop.Name Next idxLoop ' Удаляет новую запись, созданную только для демонстрации. With rstEmployees .Bookmark = .LastModified .Delete .Close End With ' Удаляет новое семейство Indexes, созданное для демонстрации. .Indexes.Delete idxCountry.Name End With dbsNorthwind.Close End Sub