Поделиться через


Свойство Form.Bookmark (Access)

Используйте свойство Bookmark с формами, чтобы задать закладку, которая однозначно идентифицирует определенную запись в базовой таблице, запросе или инструкции SQL формы. Для чтения и записи, Variant.

Синтаксис

expression. Закладка

выражение: переменная, представляющая объект Form.

Замечания

Примечание.

Вы получаете или задаете свойство Bookmark формы отдельно от свойства ADO Bookmark или DAO Bookmark базовой таблицы или запроса.

При открытии связанной формы в представлении формы каждой записи назначается уникальная закладка. В Visual Basic закладку для текущей записи можно сохранить, назначив строковой переменной значение свойства Bookmark формы. Чтобы вернуться к сохраненной записи после перехода на другую запись, задайте для свойства Bookmark формы значение сохраненной строковой переменной. Используйте функцию StrComp для сравнения переменной Variant или строковой переменной с закладкой или при сравнении закладки с закладкой. Третий аргумент для функции StrComp должен иметь нулевое значение.

Примечание.

Закладки не сохраняются вместе с записями, которые они представляют, и действительны только при открытии формы. Они повторно создаются Microsoft Access при каждом открытии связанной формы.

Количество закладок, которые можно сохранить, не ограничено, если каждая из них сохраняется с уникальной строковой переменной.

Свойство Bookmark доступно только для текущей записи формы. Чтобы сохранить закладку для записи, отличной от текущей, перейдите к нужной записи и назначьте значение свойства Bookmark строковой переменной, которая идентифицирует эту запись.

Используйте закладки в любой форме, полностью основанной на таблицах Access. Однако другие продукты базы данных могут не поддерживать закладки. Например, вы не можете использовать закладки в форме, основанной на связанной таблице, которая не имеет основного индекса.

Повторный запрос формы делает недействительными все закладки, заданные для записей в форме. Однако выбор пункта Обновить в меню "Записи " не влияет на закладки.

Поскольку Access создает уникальную закладку для каждой записи в наборе записей формы при открытии формы, закладка формы не будет работать с другим набором записей, даже если два набора записей основаны на одной таблице, запросе или инструкции SQL. Например, предположим, что вы открыли форму, привязанную к таблице Customers . Если вы открываете таблицу Customers с помощью Visual Basic, а затем используете метод ADO Seek или DAO Seek для поиска определенной записи в таблице, вы не сможете задать для свойства Bookmark формы текущую запись таблицы. Для выполнения такой операции можно использовать метод ADO Find или метод DAO Find со свойством RecordsetClone формы.

Если для свойства Bookmark задана строковая переменная, а затем попытаться вернуться к этой записи после удаления записи, возникает ошибка.

Значение свойства Bookmark не повторяет номер записи.

Пример

Чтобы протестировать следующий пример с примером базы данных Northwind, необходимо добавить кнопку команды с именем cmdFindContactName в форму Поставщики , а затем добавить следующий код в событие Click кнопки. При нажатии кнопки пользователю предлагается ввести часть имени контакта для поиска. Если имя найдено, свойству Bookmark формы присваивается свойство DAO Bookmark объекта Recordset, которое перемещает текущую запись формы на найденное имя.

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 и обратная связь.