Usar indicadores
Geralmente, é útil retornar diretamente para um registro específico depois de ter movido no Recordset sem precisar rolar por cada registro e comparar valores. Por exemplo, se você tentar pesquisar um registro usando o método Find, mas a pesquisa não retornar registros, você será colocado automaticamente em uma das extremidades do Recordset. Se o provedor der suporte a eles, os indicadores poderão ser usados para marcar seu local antes de usar o método Find, para que você possa retornar ao seu local. Um indicador é um valor de tipo Variant que identifica exclusivamente um registro em um objeto Recordset.
Você também pode usar uma matriz variante de indicadores com o método Recordset Filter para filtrar em um conjunto de registros selecionado. Para obter detalhes sobre essa técnica, consulte Filtrar os resultados no tópico, Trabalhar com Recordsets, mais adiante nesta seção.
Você pode usar a propriedade Bookmark para obter um indicador de um registro ou definir o registro atual em um objeto Recordset para o registro identificado por um indicador válido. O código a seguir usa a propriedade Bookmark para definir um indicador e, em seguida, retornar ao registro marcado depois de passar para outros registros. Para determinar se o Recordset dá suporte a indicadores, use o método Supports.
'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
Posteriormente, o método Supports é abordado de forma mais detalhada.
Exceto para o caso de Recordsets clonados, os indicadores são exclusivos do Recordset no qual foram criados, ainda que o mesmo comando seja usado. Isso significa que você não pode usar um Bookmark obtido de um Recordset para mover para o mesmo registro em um segundo Recordset aberto com o mesmo comando.