Compartilhar via


Uso de marcadores

Aplica-se ao: Access 2013, Office 2013

Frequentemente é útil retornar diretamente a um registro específico depois de ter percorrido o 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 nenhum registro, você será colocado automaticamente em alguma extremidade do Recordset. Se o provedor oferecer suporte, poderão ser usados indicadores para marcar seu lugar antes de usar o método Find, de forma que você pode retornar ao local. Um indicador é um valor do tipo Variant que identifica de maneira exclusiva um registro em um objeto Recordset.

Também pode utilizar uma matriz de variantes de marcadores com o método Filtro de Conjunto de Registos para filtrar um conjunto selecionado de registos. Para obter detalhes sobre essa técnica, consulte Filtrando os resultados no tópico Trabalhando com recordsets, posteriormente neste capítulo.

Você pode usar a propriedade Bookmark para obter um indicador para 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 o registro indicado depois de mover-se para outros registros. Para determinar se o seu Recordset oferece 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 

O método Supports será abordado em mais detalhes posteriormente.

Exceto no caso de Recordsets clonados, os indicadores são exclusivos do Recordset no qual foram criados, mesmo que o mesmo comando seja usado. Isso significa que você não pode usar um Bookmark obtido de um Recordset para mover-se para o mesmo registro em outro Recordset aberto com o mesmo comando.