Partager via


Utilisation de signets

Il est souvent utile de revenir directement à un enregistrement spécifique après avoir été déplacé dans le Recordset sans avoir à faire défiler chaque enregistrement et comparer les valeurs. Par exemple, si vous tentez de rechercher un enregistrement à l’aide de la méthode Find, mais que la recherche ne renvoie aucun enregistrement, vous êtes automatiquement placé à l’une ou l’autre extrémité du Recordset. Si votre fournisseur les prend en charge, les signets peuvent être utilisés pour marquer votre lieu avant d’utiliser la méthode Find afin de pouvoir revenir à votre emplacement. Un signet est une valeur de type Variant qui identifie de façon unique un enregistrement dans un objet Recordset.

Vous pouvez également utiliser un tableau de variantes de signets avec la méthode Recordset Filter pour filtrer sur un ensemble d’enregistrements sélectionné. Pour plus d’informations sur cette technique, consultez Filtrage des résultats dans la rubrique, Utilisation des Recordsets, plus loin dans cette section.

Vous pouvez utiliser la propriété Bookmark pour obtenir un signet pour un enregistrement ou définir l’enregistrement actif dans un objet Recordset sur l’enregistrement identifié par un signet valide. Le code suivant utilise la propriété Bookmark pour définir un signet, puis revenir à l’enregistrement avec signet après le passage à d’autres enregistrements. Pour déterminer si votre Recordset prend en charge les signets, utilisez la méthode 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  

La méthode Supports est abordée plus en détail plus loin.

À l’exception du cas des Recordsets clonés, les signets sont propres au Recordset dans lequel ils ont été créés, même si la même commande est utilisée. Cela signifie que vous ne pouvez pas utiliser un signet obtenu à partir d’un Recordset pour accéder au même enregistrement dans un second Recordset ouvert avec la même commande.