在 Recordset 中移动后,直接返回到特定记录通常很有用,而无需滚动浏览每个记录并比较值。 例如,如果尝试使用 Find 方法搜索记录,但搜索不返回任何记录,则会自动放置在 Recordset的任一端。 如果你的提供商支持它们,则可以使用书签在使用 Find 方法之前标记你的位置,以便你可以返回到你的位置。 书签是 Variant 类型的值,它用于在 Recordset 对象中唯一标识一条记录。
还可以将书签的变体数组与 Recordset Filter 方法一起使用,以筛选所选记录集。 关于该技术的详细信息,请参阅本节稍后关于使用记录集的主题中的“筛选结果”。
可以使用 Bookmark 属性获取记录的书签,或在 Recordset 对象中将当前记录设置为有效书签标识的记录。 以下代码使用 Bookmark 属性设置书签,然后在转到其他记录后返回到书签记录。 若要确定 Recordset 是否支持书签,请使用 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 方法。
除了克隆 记录集的情况,书签对于创建它们的 记录集 是唯一的,即使使用相同的命令也是如此。 这意味着,无法使用从一个 Recordset 获得的 Bookmark,来移动到同一命令打开的第二个 Recordset 中的同一记录。