Использование закладок
Часто полезно вернуться непосредственно к определенной записи после того, как вы прошли по набору записей , без необходимости прокручивать и сравнивать каждую запись. Например, если вы пытаетесь выполнить поиск записи с помощью метода Find, но поиск не возвращает никаких записей, вы автоматически помещаетсяе в любой конец набора записей . Если ваш поставщик поддерживает это, вы можете использовать закладки для пометки вашего места перед использованием метода Найти, чтобы вернуться к месту. Закладка — это значение типа Variant, однозначно определяющее запись в объекте набора записей.
Кроме того, можно использовать вариантный массив закладок с методом фильтра набора записей, чтобы отфильтровать выбранный набор записей. Дополнительные сведения об этом методе см. в теме "Отбор результатов" в разделе Работа с записямидалее в этом разделе.
Вы можете использовать свойство закладки, чтобы получить закладку для записи, или задать текущую запись в объекте Recordset на запись, определяемую допустимой закладкой. Следующий код использует свойство закладки для задания закладки, а затем возврата к закладочной записи после перехода на другие записи. Чтобы определить, поддерживает ли набор записей, используйте метод Поддерживает.
'BeginBookmarkEg
Dim varBookmark As Variant
Dim blnCanBkmrk As Boolean
objRs.Open strSQL, strConnStr, adOpenStatic, adLockOptimistic, adCmdText
If objRs.RecordCount > 4 Then
objRs.Move 4 ' move to the fifth record
blnCanBkmrk = objRs.Supports(adBookmark)
If blnCanBkmrk = True Then
varBookmark = objRs.Bookmark ' record the bookmark
objRs.MoveLast ' move to a different record
objRs.Bookmark = varBookmark ' return to the bookmarked (sixth) record
End If
End If
'EndBookmarkEg
Метод Поддерживает более подробно описан позже.
За исключением клонированных наборов записей , закладки уникальны для наборов записей, в которых они были созданы, даже если используется та же команда. Это означает, что вы не можете использовать закладку, полученную из одного набора записей, чтобы перейти к той же записи во втором наборе записей, открытом с той же командой.