Compartilhar via


Propriedade Form.Bookmark (Access)

Utilize a propriedade Marcador com formulários para definir um marcador que identifique exclusivamente um registo 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. Utilize a função StrComp para comparar uma Variante ou variável de cadeia com um marcador ou ao comparar um marcador com um marcador. O terceiro argumento para a função StrComp precisa ser definido com o valor zero.

Observação

Os marcadores não são guardados com os registos que representam e só são válidos enquanto o formulário estiver aberto. Eles são recriados pelo Microsoft Access cada vez que um formulário acoplado é aberto.

Não existe limite para o número de marcadores que pode guardar se cada um for guardado com uma variável de cadeia 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.

Utilize marcadores em qualquer forma baseada inteiramente em tabelas do Access. 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, selecionar Atualizar no menu Registos não afeta os marcadores.

Uma vez que o Access cria um marcador exclusivo para cada registo no conjunto de registos de um formulário quando um formulário é aberto, o marcador de um formulário não funcionará noutro conjunto de registos, mesmo quando os dois conjuntos de registos se baseiam na mesma tabela, consulta ou instrução SQL. Por exemplo, suponha que abre um formulário vinculado à tabela Clientes . Se abrir a tabela Clientes com o Visual Basic e, em seguida, utilizar o método ADO Seek ou o método DAO Seek para localizar um registo específico na tabela, não poderá definir a propriedade Marcador do formulário para o registo de tabela atual. Para efetuar este tipo de operação, pode utilizar 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 seguinte com a base de dados de exemplo da Northwind, tem de adicionar um botão de comando com o nome cmdFindContactName ao formulário Fornecedores e, em seguida, adicionar o seguinte código 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.