Compartir a través de


Utilizar marcadores

A menudo resulta útil volver directamente a un registro específico después de haber pasado por el objeto Recordset sin tener que desplazarse por cada registro y comparar valores. Por ejemplo, si intenta buscar un registro mediante el método Find, pero la búsqueda no devuelve ningún registro, se coloca automáticamente al final del objeto Recordset. Si el proveedor los admite, los marcadores se pueden usar para marcar su lugar antes de usar el método Find para que pueda volver a su ubicación. Un marcador es un valor de tipo Variant que identifica de forma única un registro en un objeto Recordset.

También puede usar una matriz variant de marcadores con el método Recordset Filter para filtrar por un conjunto seleccionado de registros. Para obtener información detallada sobre esta técnica, consulte Filtrado de los resultados en el tema Trabajar con conjuntos de registros, más adelante en esta sección.

Puede usar la propiedad Bookmark para obtener un marcador para un registro o establecer el registro actual en un objeto Recordset en el registro identificado por un marcador válido. El código siguiente usa la propiedad Bookmark para establecer un marcador y, a continuación, volver al registro marcado después de pasar a otros registros. Para determinar si el objeto Recordset admite marcadores, use el 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  

El método Supports se trata con más detalle más adelante.

Excepto en el caso de los objetos Recordsets clonados, los marcadores son únicos para el objeto Recordset en el que se crearon, incluso si se usa el mismo comando. Esto significa que no se puede usar un marcador obtenido de un objeto Recordset para pasar al mismo registro en un segundo objeto Recordset abierto con el mismo comando.