●概要●
構文 expression.Bookmark 取得/設定
設定項目 内容
expression Recordsetオブジェクトを指定[省略不可]
カレントレコードのブックマークを設定または取得します。
ブックマークとは、Recordset内の各レコードを識別するため一意な値です。Recordsetオブジェクトを作成した時点で、各レコードは固有のブックマークを持っています。あるレコードのBookmarkプロパティ値を変数に取得してからレコードを移動すると、後からブックマークを頼りに、そのレコードに戻ることができます。
次のコードは、インプットダイアログで入力した商品NOのレコードを検索するものです。該当する商品が見つかれば商品名を表示します。見つからなければ、保存しておいたブックマークを利用して元のレコードをカレントレコードにします。
●設定●
動作確認をするためには、Visual Basic Editorのメニューから[ツール]→[参照設定]コマンドを選択し、[参照設定]ダイアログボックスで「Microsoft DAO 3.6 Object Library」にチェックを入れてください。
●サンプル●
Sub BookmarkSample()
Dim myRS As DAO.Recordset
Dim myBM As Variant
Dim myStr As String
'[商品テーブル]をテーブルタイプのレコードセットとして開く
Set myRS = CurrentDb.OpenRecordset("商品テーブル", dbOpenTable)
'現在のブックマークを保存
myBM = myRS.Bookmark
'現在のレコードを表示
MsgBox "現在のレコード:" & myRS!商品NO
'インデックスの設定
myRS.Index = "PrimaryKey"
'検索条件の入力
myStr = InputBox("商品NOを入力してください")
'検出
myRS.Seek "=", myStr
'見つからなかった場合
If myRS.NoMatch Then
'元の位置に戻す
myRS.Bookmark = myBM
MsgBox "見つかりませんでした" & vbCr & _
"現在のレコード:" & myRS!商品NO
'見つかった場合
Else
MsgBox "見つかりました" & vbCr & _
"現在のレコード:" & myRS!商品NO & " " & myRS!商品名
End If
myRS.Close
End Sub