Form.Bookmark 属性 (Access)

Bookmark 属性与窗体配合使用可以设置一个书签,该书签唯一标识窗体的基础表、查询或 SQL 语句中的特定记录。 读/写 Variant

语法

表达式书签

expression:表示 Form 对象的变量。

备注

注意

分别从基础表或查询的 ADO Bookmark 或 DAO Bookmark 属性中,获取或设置窗体的 Bookmark 属性。

在窗体视图中打开绑定窗体时,系统将为每个记录分配一个唯一的书签。 在 Visual Basic 中,可以通过将窗体的 Bookmark 属性值赋给一个字符串变量来保存当前记录的书签。 若要在移到其他记录后返回到一个已保存的记录,请将窗体的 Bookmark 属性设置为已保存的字符串变量的值。 使用 StrComp 函数可将 Variant 或字符串变量与书签进行比较,或者在将书签与书签进行比较时。 必须将 StrComp 函数的第三个参数设置为零值。

注意

书签不随它们表示的记录一起保存,并且仅在窗体打开时有效。 每次打开绑定窗体时,Microsoft Access 都将重建书签。

如果每个书签都使用唯一的字符串变量保存,则可以保存的书签数量没有限制。

Bookmark 属性只在窗体的当前记录中可用。 若要保存除当前记录以外的其他某个记录的书签,需移到相应的记录,然后将 Bookmark 属性的值分配给标识此记录的字符串变量。

以完全基于 Access 表的任何形式使用书签。 但其他数据库产品可能不支持书签。 例如,在基于无主索引的链接表的窗体中就不能使用书签。

重新查询窗体会使窗体中记录上设置的任何书签失效。 但是,在“记录”菜单上选择“刷新”不会影响书签。

由于 Access 会在打开窗体的记录集时为窗体的记录集中的每条记录创建一个唯一的书签,因此即使两个记录集基于同一表、查询或 SQL 语句,窗体的书签也无法用于另一个记录集。 例如,假设打开绑定到 Customers 表的窗体。 如果使用 Visual Basic 打开 Customers 表,然后使用 ADO Seek 方法或 DAO Seek 方法查找表中的特定记录,则无法将窗体的 Bookmark 属性设置为当前表记录。 若要执行此类操作,可以将 ADO Find 方法或 DAO Find 方法与窗体的 RecordsetClone 属性结合使用。

如果将 Bookmark 属性设置为一个字符串变量,然后试图在记录已删除后返回该记录,则会产生错误。

Bookmark 属性值不同于记录编号。

示例

若要使用 Northwind 示例数据库测试以下示例,需要将名为 cmdFindContactName 的命令按钮添加到 “供应商 ”窗体,然后将以下代码添加到按钮的 Click 事件。 单击此按钮时,将要求用户输入要查找的联系人姓名的一部分。 如果找到,窗体的 Bookmark 属性将设置为 Recordset 对象的 DAO Bookmark 属性,该属性将窗体的当前记录移到找到的姓名处。

Private Sub cmdFindContactName_Click() 
 
 Dim rst As DAO.Recordset 
 Dim strCriteria As String 
 
 strCriteria = "[ContactName] Like '*" & InputBox("Enter the " _ 
 & "first few letters of the name to find") & "*'" 
 
 Set rst = Me.RecordsetClone 
 rst.FindFirst strCriteria 
 If rst.NoMatch Then 
 MsgBox "No entry found.", vbInformation 
 Else 
 Me.Bookmark = rst.Bookmark 
 End If 
 
 Set rst = Nothing 
 
End Sub

支持和反馈

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。