Шаг 93 - Свойство Bookmarkable

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

Значение
Возвращаемое значение имеет тип Boolean и содержит значение True, если объект поддерживает использование закладок.

Замечания
Значение свойства Bookmarkable следует проверить перед попыткой установить или прочитать значение свойства Bookmark.
Для объекта Recordset, созданного исключительно на основе таблиц ядра базы данных Microsoft Jet, свойство Bookmarkable имеет значение True, и допускается использование свойства Bookmark для объектов Recordset. Например, не допускается использование закладок в любом объекте Recordset, созданном на основе присоединенной таблицы Paradox, в которой не определен ключ.

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

Sub BookmarkX()

	Dim dbsNorthwind As Database
	Dim rstCategories As Recordset
	Dim strMessage As String
	Dim intCommand As Integer
	Dim varBookmark As Variant

	Set dbsNorthwind = OpenDatabase("Борей.mdb")
	Set rstCategories = dbsNorthwind.OpenRecordset("Типы", dbOpenSnapshot)
	With rstCategories

		If .Bookmarkable = False Then
			Debug.Print "Объект Recordset не поддерживает закладки!"
		Else
			' Заполняет объект Recordset.

			.MoveLast
			.MoveFirst

			Do While True
				' Отображает сведения о текущей записи 
				' и принимает данные от пользователя.
				strMessage = "Категория: " & !Категория & _
					" (запись " & (.AbsolutePosition + 1) & _
					" из " & .RecordCount & ")" & vbCr & _
					"Введите команду:" & vbCr & _
					"[1 - следующая / 2 - предыдущая /" & vbCr & _
					"3 - установить закладку / 4 - перейти на закладку]"
				intCommand = Val(InputBox(strMessage))

				Select Case intCommand
					' Переход вперед или назад, перехват 
					' меток BOF или EOF.
					Case 1
						.MoveNext
						If .EOF Then .MoveLast
					Case 2
						.MovePrevious
						If .BOF Then .MoveFirst

					' Сохраняет закладку текущей записи.
					Case 3
						varBookmark = .Bookmark

					' Переходит на запись, отмеченную 
					' сохраненной закладкой.
					Case 4

					If IsEmpty(varBookmark) Then
							MsgBox "Нет установленной закладки!"
						Else
							.Bookmark = varBookmark
						End If

					Case Else
						Exit Do
				End Select
			Loop
		End If
		.Close
	End With

	dbsNorthwind.Close
End Sub

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