次の方法で共有


ブックマークを使用する

レコードセット内を移動した後、すべてのレコードをスクロールして値を比較することなく、特定のレコードに直接戻ることが役立つことがよくあります。 たとえば、Find メソッドを使用してレコードを検索しようとしてもレコードが返されない場合、レコードセットのどちらかの端に自動的に配置されます。 プロバイダーでサポートされている場合は、ある場所に戻ることができるように、Find メソッドを使用する前にブックマークを使用して場所をマークできます。 ブックマークは、Recordset オブジェクト内のレコードを一意に識別するバリアント型の値です。

Recordset Filter メソッドでブックマークのバリアント配列を使用して、選択したレコードセットをフィルター処理することもできます。 この手法の詳細については、このセクションで後述する「レコードセットの操作」トピックの「結果のフィルター処理」を参照してください。

Bookmark プロパティを使用すると、レコードのブックマークを取得したり、Recordset オブジェクトの現在のレコードを有効なブックマークで識別されるレコードに設定したりできます。 次のコードでは、Bookmark プロパティを使用してブックマークを設定し、他のレコードに移動した後、ブックマークされたレコードに戻ります。 レコードセットでブックマークがサポートされているかどうかを確認するには、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  

Supports メソッドについては、後で詳しく説明します。

複製されたレコードセットの場合を除き、ブックマークは、同じコマンドが使用されている場合でも、作成元のレコードセットに固有です。 つまり、あるレコードセットから取得したブックマークを使用して、同じコマンドで開かれた 2 つ目のレコードセット内の同じレコードに移動することはできません。