Шаг 103 - Свойство PercentPosition

Описание
Задает или возвращает значение, указывающее примерное положение текущей записи в объекте Recordset, измеряемое в процентах от общего числа записей объекта Recordset.

Значение
Задаваемое или возвращаемое значение является выражением типа Single, содержащим число в диапазоне от 0,0 до 100,00.

Замечания
Для определения или изменения приблизительного положения текущей записи в объекте Recordset можно проверить или задать значение свойства PercentPosition. При работе с объектами Recordset типа динамического или статического набора записей, открытыми непосредственно для основной таблицы, перед обращением к этому свойству необходимо предварительно заполнить объект. Для этого следует переместиться на последнюю запись набора. Если обратиться к свойству PercentPosition до окончательного заполнения объекта Recordset, то перемещение будет определяться текущим значением свойства RecordCount. Перейти на последнюю запись позволяет метод MoveLast.
Не рекомендуется использовать свойство PercentPosition для перемещения текущей записи на конкретную позицию в наборе записей — для этого удобнее использовать свойство Bookmark.
После указания значения свойства PercentPosition текущей записью становится запись, положение которой ближе всего соответствует указанному приблизительному значению, а значение свойства PercentPosition изменяется в соответствии с положением текущей записи. Например, если объект Recordset содержит всего пять записей, и для свойства PercentPosition задано значение 77, то значением данного свойства станет число 80, а не 77.
Свойство PercentPosition применимо ко всем типам объектов Recordset кроме объектов Recordset типа статического набора записей с последовательным доступом и объектов Recordset, открытых с помощью запросов к серверу удаленной базы данных.
Свойство PercentPosition используют при работе с полосой прокрутки формы или поля для указания положения текущей записи в объекте Recordset.

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

Sub PercentPositionX()

	Dim dbsNorthwind As Database
	Dim rstProducts As Recordset
	Dim strFind As String
	Dim strMessage As String

	Set dbsNorthwind = OpenDatabase("Борей.mdb")
	' Свойство PercentPosition применимо только 
	' к динамическим и статическим наборам записей.
	Set rstProducts = dbsNorthwind.OpenRecordset( "SELECT Марка FROM Товары " &  "ORDER BY Марка", dbOpenSnapshot)

	With rstProducts
		' Заполняет объект Recordset.
		.MoveLast
		.MoveFirst

		Do While True
			' Отображает сведения о текущей записи 
			' и выводит приглашение пользователю.
			strMessage = "Товар: " & !Марка & vbCr & 	"Указатель текущей записи находится на " & _
				Format(.PercentPosition, "##0.0") & 	"% от " & vbCr & _
				"начала объекта Recordset." & vbCr & 	"Введите образец для поиска " & 	"названия товара."
			strFind = Trim(InputBox(strMessage))
			If strFind = "" Then Exit Do
			' Поиск записи, удовлетворяющей образцу.
			.FindFirst "Марка >= '" & strFind & "'"
			If .NoMatch Then .MoveLast
		Loop
		.Close
	End With
	dbsNorthwind.Close

End Sub

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