Partilhar via


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.