Шаг 99 - Свойство Index

Описание
Задает или возвращает значение, указывающее имя текущего объекта Index в объекте Recordset типа таблицы (только в рабочей области Microsoft Jet).

Значение
Задаваемое или возвращаемое значение данного свойства представляет выражение типа String, значением которого является имя объекта Index в семействе Indexes объекта Tabledef или базового объекта TableDef, соответствующего объекту Recordset типа таблицы.Замечания
Записи в основных таблицах не хранятся в каком-либо определенном порядке. Значения свойства Index изменяют только порядок записей, возвращаемых из базы данных; это свойство не влияет на порядок расположения записей в таблице.
Указанный объект Index должен уже существовать. Если в значении свойства Index указан несуществующий объект Index или если значение свойства Index не задано, то при вызове метода Seek возникает перехватываемая ошибка.
Просмотр семейства Indexes объекта TableDef позволяет определить, какие объекты Index являются допустимыми для объекта Recordset типа таблицы, созданного на основе объекта TableDef.
Для создания нового индекса таблицы следует создать новый объект Index, задать его свойства, добавить его в семейство Indexes базового объекта TableDef, а затем заново открыть объект Recordset.
Записи, возвращаемые в объекте Recordset типа таблицы, можно упорядочить только с помощью индексов, определенных для базового объекта TableDef. Для сортировки записей в каком-либо другом порядке следует открыть объект Recordset типа динамического набора записей, статического набора записей или статического набора записей с последовательным доступом с помощью инструкции SQL с заданным предложением ORDER BY.
Пользователь не обязан создавать индексы для таблиц, однако, в больших неиндексированных таблицах доступ к конкретной записи или создание объекта Recordset может занять много времени. С другой стороны, создание слишком большого числа индексов замедляет операции обновления, добавления и удаления, поскольку при этих операциях автоматически обновляются все индексы.
Записи, считываемые из неиндексированных таблиц, возвращаются в произвольном порядке.
Свойство Attributes каждого объекта Field в объекте Index определяет порядок записей и, соответственно, приемы, необходимые при использовании данного индекса.
Уникальный индекс позволяет оптимизировать процесс поиска записей.
Индексы не влияют на физический порядок записей в основной таблице - индексы изменяет только способ доступа к конкретным записям в объекте Recordset типа таблицы при выборе конкретного индекса или при открытии объекта Recordset.

Пример
Следующая программа использует свойство Index, чтобы изменить порядок записей в табличном объекте Recordset.

Sub IndexPropertyX()

	Dim dbsNorthwind As Database
	Dim tdfEmployees As TableDef
	Dim rstEmployees As Recordset
	Dim idxLoop As Index

	Set dbsNorthwind = OpenDatabase("Борей.mdb")
	Set rstEmployees = dbsNorthwind.OpenRecordset("Сотрудники")
	Set tdfEmployees = dbsNorthwind.TableDefs!Сотрудники

	With rstEmployees

		' Отображает семейство Indexes таблицы "Сотрудники".
		For Each idxLoop In tdfEmployees.Indexes
			.Index = idxLoop.Name
			Debug.Print "Индекс = " & .Index
			Debug.Print "    КодСотрудника - Индекс - Имя"
			.MoveFirst

			' Цикл по всем компонентам объекта Recordset,
			' демонстрирующий порядок записей.
			Do While Not .EOF
				Debug.Print "        " & !КодСотрудника & " - " & _
					!Индекс & " - " & !Имя & " " & 	!Фамилия
				.MoveNext
			Loop
		Next idxLoop
		.Close
	End With
	dbsNorthwind.Close
End Sub

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 19.03.2002