Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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.