Propriedade Form.Bookmark (Access)
Use a propriedade Bookmark com formulários para definir um indicador que identifica exclusivamente um registro específico na tabela, consulta ou instrução SQL subjacente do formulário. Variant de leitura/gravação.
Sintaxe
expressão. Indicador
expressão Uma variável que representa um objeto Form.
Comentários
Observação
Você obtém ou define a propriedade Bookmark do formulário separadamente da propriedade Bookmark do ADO ou Bookmark do DAO da tabela ou consulta de base.
Quando um formulário acoplado é aberto no modo formulário, um indicador exclusivo é atribuído a cada registro. No Visual Basic, você pode salvar o indicador do registro atual atribuindo o valor da propriedade Bookmark do formulário a uma variável de sequência. Para retornar a um registro salvo depois de mover para um registro diferente, defina a propriedade Bookmark do formulário com o valor da variável de sequência salva. Use a função StrComp para comparar uma variant ou variável de cadeia de caracteres com um indicador ou ao comparar um indicador com um indicador. O terceiro argumento para a função StrComp precisa ser definido com o valor zero.
Observação
Os indicadores não são salvos com os registros que eles representam e são válidos somente enquanto o formulário está aberto. Eles são recriados pelo Microsoft Access cada vez que um formulário acoplado é aberto.
Não há limite para o número de indicadores que você pode salvar se cada um for salvo com uma variável de cadeia de caracteres exclusiva.
A propriedade Bookmark só está disponível para o registro atual do formulário. Para salvar um indicador de um registro que não seja o atual, mova para o registro desejado e atribua o valor da propriedade Bookmark a uma variável de sequência que identifique esse registro.
Use indicadores em qualquer formulário baseado inteiramente em tabelas de acesso. Entretanto, outros produtos de banco de dados talvez não ofereçam suporte a indicadores. Por exemplo, você não pode utilizar indicadores em um formulário baseado em uma tabela vinculada que não tenha índice primário.
Repetir a consulta de um formulário invalida qualquer indicador definido nos registros do formulário. No entanto, escolher Atualizar no menu Registros não afeta os indicadores.
Como o Access cria um indicador exclusivo para cada registro no conjunto de registros de um formulário quando um formulário é aberto, o indicador de um formulário não funcionará em outro conjunto de registros, mesmo quando os dois conjuntos de registros forem baseados na mesma tabela, consulta ou instrução SQL. Por exemplo, suponha que você abra um formulário vinculado à tabela Clientes . Se você abrir a tabela Clientes usando o Visual Basic e usar o método ADO Seek ou DAO Seek para localizar um registro específico na tabela, não poderá definir a propriedade Bookmark do formulário como o registro de tabela atual. Para executar esse tipo de operação, você pode usar o método ADO Find ou o método DAO Find com a propriedade RecordsetClone do formulário.
Ocorrerá um erro se você definir a propriedade Bookmark com uma variável de sequência e, então, tentar retornar a esse registro após o mesmo ter sido excluído.
O valor da propriedade BookmarkBookmark não é o mesmo que um número de registro.
Exemplo
Para testar o exemplo a seguir com o banco de dados de exemplo northwind, você precisa adicionar um botão de comando chamado cmdFindContactName ao formulário Fornecedores e, em seguida, adicionar o código a seguir ao evento Clique do botão. Ao clicar no botão, será solicitado que o usuário insira uma parte do nome do contato a ser encontrado. Se o nome for encontrado, a propriedade Bookmark do formulário será definida com a propriedade Recordset do DAO do objeto Bookmark, movendo o registro atual do formulário para o nome encontrado.
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
Suporte e comentários
Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.