Como Duplicar Registros Rapidamente no seu Access

Compartilhe agora:

Aprenda como você pode criar uma função VBA que permite copiar determinados dados de registros anteriores com apenas um clique de um botão. Não há necessidade de digitar repetidamente as mesmas coisas.

Você já teve uma experiência em que precisava inserir um novo registro no Access que tivesse exatamente o mesmo conjunto de valores com um registro anterior, exceto por um campo? Pode ser cansativo, certo? Este tutorial vai te ensinar como você pode criar uma função que com um clique de um botão, você pode copiar certos valores de um registro anterior – economizando tempo de redigitação. Apenas siga os passos abaixo.

Faça o download

Se você deseja começar a usar o recurso o mais rápido possível, você pode:

Baixe o banco de dados de amostra com códigos VBA agora

Caso contrário, se você quiser DIY, pode ler o conteúdo abaixo.

Etapas para adicionar uma funcionalidade 'Criar cópia de registro' no Access

  1. Abra seu formulário no modo de design.Abra seu formulário na visualização de design
  2. Adicione um botão de comando. Ignore o assistente do botão de comando.
  3. Adicione um No Clique evento para o botão.Adicionar um evento On Click ao botão
  • Na visualização de design, selecione o botão.
  • Abra a Folha de Propriedades (ALT + Enter)
  • Vá para a guia Evento > Ao clicar > …
  • Quando o Escolha o Construtor menu aparecer, selecione Code Builder.
  • Clique em OK.
  • Isso abrirá o Editor VBA.
    1. Copie o código a seguir e modifique-o para atender às suas necessidades. Use os comentários como guia.
    Private Sub Command24_Click()
        Dim currentID As Long
     
        'TO DO: change all instances of 'BookID' with the actual name of your table's ID or primary key
     
        If IsNull(BookID) Then
            MsgBox prompt:="Please select the record to copy first.", buttons:=vbExclamation
            Exit Sub
        End If
     
        currentID = BookID
        DoCmd.GoToRecord record:=acNewRec
     
        'TO DO: set the fields to be copied (those that most likely will have the same values)
        'FORMAT: fieldName = Dlookup("fieldname", "tableName", "primaryKeyField=" & currentID)
     
         Author = DLookup("Author", "Books", "BookID=" & currentID)
         Country = DLookup("Country", "Books", "BookID=" & currentID)
         Language = DLookup("Language", "Books", "BookID=" & currentID)
         Genre = DLookup("Genre", "Books", "BookID=" & currentID)
         Publisher = DLookup("Publisher", "Books", "BookID=" & currentID)
     
         Title.SetFocus ‘TO DO: change 'Title' with name of field that is going to be edited by the user
     
    End Sub
  1. Agora teste o código se funcionar.

Código Explicado

O código acima foi usado para o banco de dados de uma livraria. Por causa da série de livros, há casos em que todos os detalhes do livro (por exemplo, Autor, País, Idioma, etc.) são os mesmos, exceto por um campo – o Título. Assim, a necessidade do código.

A lista abaixo mostra o fluxo do programa.

  1. Verifique se o usuário selecionou um registro para copiar. Uma mensagem de erro aparecerá se o usuário clicar no botão logo após clicar no botão Adicionar novo registro – tornando o ID nulo.
If IsNull(BookID) Then
     MsgBox prompt:="Please select the record to copy first.", buttons:=vbExclamation
     Exit Sub
End If
  1. Obtenha o ID ou chave primária do registro atual e atribua-o como valor para o IDatual Isso será usado como base para os valores a serem copiados.
currentID = BookID
  1. Adicione um novo registro.
DoCmd.GoToRecord record:=acNewRec
  1. Definir valores para determinados campos com base no IDatual É aqui que os dados são copiados do registro selecionado.
'FORMAT: fieldName = Dlookup("fieldname", "tableName", "primaryKeyField=" & currentID)

Author = DLookup("Author", "Books", "BookID=" & currentID)
Country = DLookup("Country", "Books", "BookID=" & currentID)
Language = DLookup("Language", "Books", "BookID=" & currentID)
Genre = DLookup("Genre", "Books", "BookID=" & currentID)
Publisher = DLookup("Publisher", "Books", "BookID=" & currentID)
  1. Defina o foco no campo que provavelmente será editado primeiro pelo usuário. Isso melhora a experiência do usuário, pois elimina a necessidade de ele selecionar manualmente o campo que ainda precisa ser atualizado.
 Title.SetFocus      ‘TO DO: change 'Title' with name of field that is going to be edited by the user

Reparar um banco de dados corrompido

Se, por um motivo infeliz, você acordar um dia sem conseguir abrir seu banco de dados, experimente ferramentas de terceiros que executam reparo de acesso. Funciona maravilhas.

Introdução do autor:

Jayme Stack é um especialista em recuperação de dados em DataNumen, Inc., líder mundial em tecnologias de recuperação de dados, incluindo recuperação sql e produtos de software de recuperação do Excel. Para mais informações visite www.datanumen.com

Compartilhe agora:

Comentários estão fechados.