使用书签

在 Recordset 中移动后,直接返回到特定记录通常很有用,而无需滚动每个记录并比较值。 例如,如果尝试使用 Find 方法搜索记录,但搜索不返回任何记录,你将被自动定位到 Recordset 的任一端。 如果你的提供程序支持它们,则在使用 Find 方法之前,可以使用书签来标记你的位置,以便可以返回到你的位置。 书签是一个 Variant 类型值,用于唯一标识 Recordset 对象中的记录。

还可以将书签的变体数组与 Recordset Filter 方法一起使用,以筛选所选记录集。 有关此技术的详细信息,请参阅本节后面的主题使用记录集中的“筛选结果”。

可以使用 Bookmark 属性获取记录的书签,或将 Recordset 对象中的当前记录设置为有效书签标识的记录。 以下代码使用 Bookmark 属性设置书签,然后在转到其他记录后返回到已添加书签的记录。 要确定 Recordset 是否支持书签,请使用 Support 方法。

'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  

稍后将更详细地介绍 Support 方法。

除克隆的 Recordset 之外,书签对于创建它们的 Recordset 是唯一的,即使使用相同的命令也是如此。 这意味着不能使用从一个 Recordset 获得的书签移动到使用相同命令打开的第二个 Recordset 中的同一条记录。