Свойство Recordset.Bookmark (DAO)Recordset.Bookmark property (DAO)

Область применения: Access 2013, Office 2013Applies to: Access 2013, Office 2013

Задает или возвращает закладку, которая уникально определяет текущую запись в объекте Recordset.Sets or returns a bookmark that uniquely identifies the current record in a Recordset object.

СинтаксисSyntax

expression .Bookmarkexpression .Bookmark

expression: переменная, представляющая объект Recordset.expression A variable that represents a Recordset object.

КомментарииRemarks

Для объекта Recordset на основе исключительно таблиц ядра СУБД Microsoft Access таблицы, свойство Bookmarkable имеет значение True, и вы можете использовать свойство Bookmark с Recordset.For a Recordset object based entirely on Microsoft Access database engine tables, the value of the Bookmarkable property is True, and you can use the Bookmark property with that Recordset. Другие продукты базы данных, однако, могут не поддерживать закладки.Other database products may not support bookmarks, however. Например, нельзя использовать закладки в любом объекте Recordset на основании связанной таблицы Paradox, которая не содержит основной ключ.For example, you can't use bookmarks in any Recordset object based on a linked Paradox table that has no primary key.

Когда вы создаете и открываете объект Recordset, каждая его запись уже имеет уникальную закладку.When you create or open a Recordset object, each of its records already has a unique bookmark. Вы можете сохранить закладку для текущей записи, назначив значение для свойства Bookmark для переменной.You can save the bookmark for the current record by assigning the value of the Bookmark property to a variable. Чтобы быстро в любое время вернуться к данной записи после перехода к другой записи, задайте в объекте Recordset для свойства Bookmark значение данной переменной.To quickly return to that record at any time after moving to a different record, set the Recordset object's Bookmark property to the value of that variable.

Не существует ограничений для количества закладок, которое вы можете создать.There is no limit to the number of bookmarks you can establish. Чтобы создать закладку для записи, отличной от текущей записи, перейдите к нужной записи и назначьте для свойства Bookmark значение переменной String, которая определяет запись.To create a bookmark for a record other than the current record, move to the desired record and assign the value of the Bookmark property to a String variable that identifies the record.

Чтобы убедиться, что объект Recordset поддерживает закладки, проверьте значение его свойства Bookmarkable, прежде чем использовать свойство Bookmark.To make sure the Recordset object supports bookmarks, check the value of its Bookmarkable property before you use the Bookmark property. Если свойство Bookmarkable имеет значение False, объект Recordset не поддерживает закладки, а использование свойства Bookmark приведет к возникновению перехватываемой ошибки.If the Bookmarkable property is False, the Recordset object doesn't support bookmarks, and using the Bookmark property results in a trappable error.

Если вы используете метод Clone для создания копии объекта Recordset, настройки свойства Bookmark для исходного и дублирующего объектов Recordset не отличаются и являются взаимозаменяемыми.If you use the Clone method to create a copy of a Recordset object, the Bookmark property settings for the original and the duplicate Recordset objects are identical and can be used interchangeably. Однако, нельзя использовать закладки из разных объектов Recordset в качестве замены друг другу,, даже если они были созданы с помощью одного и того же объекта или оператора SQL.However, you can't use bookmarks from different Recordset objects interchangeably, even if they were created by using the same object or the same SQL statement.

Если установить для свойства Bookmark значение, которое представляет удаленную запись, возникает перехватываемая ошибка.If you set the Bookmark property to a value that represents a deleted record, a trappable error occurs.

Значение свойства Bookmark не повторяет номер записи.The value of the Bookmark property isn't the same as a record number.

ПримерExample

В этом примере используются свойства Bookmark и Bookmarkable, чтобы пользователи могли отмечать записи в Recordset и позднее возвращаться к ним.This example uses the Bookmark and Bookmarkable properties to let the user flag a record in a Recordset and return to it later.

    Sub BookmarkX() 
     
     Dim dbsNorthwind As Database 
     Dim rstCategories As Recordset 
     Dim strMessage As String 
     Dim intCommand As Integer 
     Dim varBookmark As Variant 
     
     Set dbsNorthwind = OpenDatabase("Northwind.mdb") 
     Set rstCategories = _ 
     dbsNorthwind.OpenRecordset("Categories", _ 
     dbOpenSnapshot) 
     
     With rstCategories 
     
     If .Bookmarkable = False Then 
     Debug.Print "Recordset is not Bookmarkable!" 
     Else 
     ' Populate Recordset. 
     .MoveLast 
     .MoveFirst 
     
     Do While True 
     ' Show information about current record and get 
     ' user input. 
     strMessage = "Category: " & !CategoryName & _ 
     " (record " & (.AbsolutePosition + 1) & _ 
     " of " & .RecordCount & ")" & vbCr & _ 
     "Enter command:" & vbCr & _ 
     "[1 - next / 2 - previous /" & vbCr & _ 
     "3 - set bookmark / 4 - go to bookmark]" 
     intCommand = Val(InputBox(strMessage)) 
     
     Select Case intCommand 
     ' Move forward or backward, trapping for BOF 
     ' or EOF. 
     Case 1 
     .MoveNext 
     If .EOF Then .MoveLast 
     Case 2 
     .MovePrevious 
     If .BOF Then .MoveFirst 
     
     ' Store the bookmark of the current record. 
     Case 3 
     varBookmark = .Bookmark 
     
     ' Go to the record indicated by the stored 
     ' bookmark. 
     Case 4 
     If IsEmpty(varBookmark) Then 
     MsgBox "No Bookmark set!" 
     Else 
     .Bookmark = varBookmark 
     End If 
     
     Case Else 
     Exit Do 
     End Select 
     
     Loop 
     
     End If 
     
     .Close 
     End With 
     
     dbsNorthwind.Close 
     
    End Sub 

В этом примере используется свойство LastModified, чтобы переместить указатель текущей записи на измененную и заново созданную записи.This example uses the LastModified property to move the current record pointer to both a record that has been modified and a newly created record.

    Sub LastModifiedX() 
     
     Dim dbsNorthwind As Database 
     Dim rstEmployees As Recordset 
     Dim strFirst As String 
     Dim strLast As String 
     
     Set dbsNorthwind = OpenDatabase("Northwind.mdb") 
     Set rstEmployees = _ 
     dbsNorthwind.OpenRecordset("Employees", _ 
     dbOpenDynaset) 
     
     With rstEmployees 
     ' Store current data. 
     strFirst = !FirstName 
     strLast = !LastName 
     ' Change data in current record. 
     .Edit 
     !FirstName = "Julie" 
     !LastName = "Warren" 
     .Update 
     ' Move current record pointer to the most recently 
     ' changed or added record. 
     .Bookmark = .LastModified 
     Debug.Print _ 
     "Data in LastModified record after Edit: " & _ 
     !FirstName & " " & !LastName 
     
     ' Restore original data because this is a demonstration. 
     .Edit 
     !FirstName = strFirst 
     !LastName = strLast 
     .Update 
     
     ' Add new record. 
     .AddNew 
     !FirstName = "Roger" 
     !LastName = "Harui" 
     .Update 
     ' Move current record pointer to the most recently 
     ' changed or added record. 
     .Bookmark = .LastModified 
     Debug.Print _ 
     "Data in LastModified record after AddNew: " & _ 
     !FirstName & " " & !LastName 
     
     ' Delete new record because this is a demonstration. 
     .Delete 
     .Close 
     End With 
     
     dbsNorthwind.Close 
     
    End Sub