Come duplicare rapidamente i record nel tuo accesso

Condividi ora:

Scopri come creare una funzione VBA che ti consenta di copiare determinati dati da record precedenti con un semplice clic di un pulsante. Non è necessario digitare ripetutamente le stesse cose.

Hai mai avuto un'esperienza in cui devi inserire un nuovo record in Access che ha esattamente lo stesso set di valori con un record precedente ad eccezione di un campo? Può essere noioso, vero? Questo tutorial ti insegnerà come creare una funzione che con un clic di un pulsante, puoi copiare determinati valori di un record precedente, risparmiando tempo dalla riscrittura. Basta seguire i passaggi seguenti.

Scarica Ora

Se vuoi start per utilizzare la funzione il prima possibile, puoi:

Scarica ora il database di esempio con i codici VBA

Altrimenti, se vuoi fare il fai-da-te, puoi leggere i contenuti di seguito.

Passaggi per aggiungere una funzionalità "Crea copia record" in Access

  1. Apri il modulo in visualizzazione struttura.Apri il tuo modulo in visualizzazione Struttura
  2. Aggiungi un pulsante di comando. Salta la procedura guidata del pulsante di comando.
  3. Aggiungi un Al clic evento al pulsante.Aggiungi un evento On Click al pulsante
  • In visualizzazione struttura, seleziona il pulsante.
  • Apri la finestra delle proprietà (ALT + Invio)
  • Vai alla scheda Evento > Al clic >...
  • Quando il Scegli Costruttore viene visualizzato il menu, selezionare Code Builder.
  • Fare clic su OK.
  • Questo aprirà l'editor VBA.
    1. Copia il codice seguente e modificalo in base alle tue esigenze. Usa i commenti come guida.
    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. Ora prova il codice se funziona.

Codice spiegato

Il codice sopra è stato utilizzato per il database di una libreria. A causa delle serie di libri, ci sono casi in cui tutti i dettagli del libro (ad es. Autore, Paese, Lingua, ecc.) sono gli stessi tranne che per un campo: il Titolo. Pertanto, la necessità del codice.

L'elenco seguente mostra il flusso del programma.

  1. Controlla se l'utente ha selezionato un record da copiare. Verrà visualizzato un messaggio di errore se l'utente fa clic sul pulsante subito dopo aver fatto clic sul pulsante Aggiungi nuovo record, annullando l'ID.
If IsNull(BookID) Then
     MsgBox prompt:="Please select the record to copy first.", buttons:=vbExclamation
     Exit Sub
End If
  1. Ottieni l'ID o la chiave primaria del record corrente e assegnalo come valore per il IDcorrente Questo sarà utilizzato come base per i valori da copiare.
currentID = BookID
  1. Aggiungi un nuovo record.
DoCmd.GoToRecord record:=acNewRec
  1. Imposta i valori per determinati campi in base a IDcorrente Qui è dove i dati vengono copiati dal record selezionato.
'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. Imposta lo stato attivo sul campo che è most probabile che venga modificato per la prima volta dall'utente. Ciò migliora l'esperienza dell'utente in quanto elimina la necessità per l'utente di selezionare manualmente il campo che deve ancora essere aggiornato.
 Title.SetFocus      ‘TO DO: change 'Title' with name of field that is going to be edited by the user

Ripara un database corrotto

Se per una sfortunata ragione un giorno ti svegli senza poter aprire il tuo database, puoi provare strumenti di terze parti che funzionano Riparazione di accesso. Funziona a meraviglia.

Introduzione dell'autore:

Jayme Stack è un esperto di recupero dati in DataNumen, Inc., che è il leader mondiale nelle tecnologie di recupero dati, tra cui ripristino sql ed eccellere prodotti software di recupero. Per maggiori informazioni visita www.datanumen.com

Condividi ora:

I commenti sono chiusi.