Cómo duplicar rápidamente registros en su acceso

Comparte ahora:

Aprenda cómo puede crear una función VBA que le permite copiar ciertos datos de registros anteriores con solo hacer clic en un botón. No es necesario escribir las mismas cosas repetidamente.

¿Alguna vez ha tenido una experiencia en la que necesita ingresar un nuevo registro en Access que tiene exactamente el mismo conjunto de valores con un registro anterior excepto por un campo? Puede ser tedioso, ¿verdad? Este tutorial le enseñará cómo puede crear una función que, con un clic de un botón, puede copiar ciertos valores de un registro anterior, lo que le ahorrará tiempo al volver a escribir. Simplemente siga los pasos a continuación.

Descargar Ahora

Si desea comenzar a utilizar la función lo antes posible, puede:

Descargue la base de datos de muestra con códigos VBA ahora

De lo contrario, si desea hacer bricolaje, puede leer el contenido a continuación.

Pasos para agregar una funcionalidad 'Crear copia de registro' en Access

  1. Abra su formulario en la vista de diseño.Abra su formulario en la vista Diseño
  2. Agrega un botón de comando. Omita el asistente del botón de comando.
  3. Agregue un Al hacer clic evento al botón.Agregar un evento al hacer clic en el botón
  • En la vista de diseño, seleccione el botón.
  • Abrir la hoja de propiedades (ALT + Enter)
  • Vaya a la pestaña Evento> Al hacer clic>…
  • Cuando la característica Elija constructor aparece el menú, seleccione Code Builder.
  • Haga clic en Aceptar.
  • Esto abrirá el Editor de VBA.
    1. Copie el siguiente código y modifíquelo para que se ajuste a sus necesidades. Utilice los comentarios como guía.
    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. Ahora prueba el código si funciona.

Código explicado

El código anterior se utilizó para la base de datos de una librería. Debido a las series de libros, hay casos en los que todos los detalles del libro (por ejemplo, autor, país, idioma, etc.) son los mismos, excepto por un campo: el título. De ahí la necesidad del código.

La siguiente lista muestra el flujo del programa.

  1. Compruebe si el usuario ha seleccionado un registro para copiar. Aparecerá un mensaje de error si el usuario hace clic en el botón justo después de hacer clic en el botón Agregar nuevo registro, lo que hace que la ID sea nula.
If IsNull(BookID) Then
     MsgBox prompt:="Please select the record to copy first.", buttons:=vbExclamation
     Exit Sub
End If
  1. Obtenga el ID o clave principal del registro actual y asígnelo como valor para el identificación actual Esto se utilizará como base para los valores que se copiarán.
currentID = BookID
  1. Agrega un nuevo registro.
DoCmd.GoToRecord record:=acNewRec
  1. Establecer valores para ciertos campos basados ​​en el identificación actual Aquí es donde se copian los datos del registro seleccionado.
'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. Centra la atención en el campo que el usuario probablemente editará primero. Esto mejora la experiencia del usuario, ya que elimina la necesidad de que seleccione manualmente el campo que aún debe actualizarse.
 Title.SetFocus      ‘TO DO: change 'Title' with name of field that is going to be edited by the user

Reparar una base de datos dañada

Si por alguna razón desafortunada, se despierta un día sin poder abrir su base de datos, puede probar herramientas de terceros que funcionan Reparación de acceso. Funciona de maravilla.

Introducción del autor:

Jayme Stack es un experto en recuperación de datos en DataNumen, Inc., que es el líder mundial en tecnologías de recuperación de datos, incluyendo recuperación de sql y productos de software de recuperación de Excel. Para más información visite www.datanumen.com

Comparte ahora:

Los comentarios están cerrados.