使用书签

适用于:Access 2013、Office 2013

通常需要在 Recordset 中移动到其他位置之后直接返回到特定记录,而不用滚动经过每个记录并比较值。 例如,如果试图使用 Find 方法搜索记录但搜索没有返回记录,您将自动位于 Recordset 的末尾。 如果提供程序支持,则在使用 Find 方法之前,可以用书签来标记您的位置,以便可以返回该位置。 书签是变量型类型值,它可以唯一标识 Recordset 对象中的记录。

还可以将书签的变体数组与 RecordsetFilter 方法结合使用,以筛选所选的记录集。 有关此技术的详细信息,请参阅本章随后的主题 使用 Recordset 中的"筛选结果"。

可以使用 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 情况以外,对于在其中创建书签的 Recordset 来说,即使使用相同命令,这些书签仍然是唯一的。 这意味着,不能使用从一个 Recordset 获得的 Bookmark 来移动到以相同命令打开的第二个 Recordset 中的同一个记录。