Hoe u snel records kunt dupliceren in uw toegang

Leer hoe u een VBA-functie kunt maken waarmee u bepaalde gegevens uit eerdere records met slechts een klik op een knop kunt kopiëren. Het is niet nodig om herhaaldelijk dezelfde dingen te typen.

Heeft u ooit een ervaring gehad waarbij u een nieuw record in Access moet invoeren dat exact dezelfde reeks waarden heeft als een vorig record, op één veld na? Het kan vermoeiend zijn, toch? In deze zelfstudie leert u hoe u een functie kunt maken waarmee u met een klik op een knop bepaalde waarden van een eerder record kunt kopiëren - waardoor u tijd bespaart bij het opnieuw typen. Volg gewoon de onderstaande stappen.

Nu downloaden

Als je de functie zo snel mogelijk wilt gaan gebruiken, kun je het volgende doen:

Download nu de voorbeelddatabase met VBA-codes

Anders, als je zelf wilt klussen, kun je de onderstaande inhoud lezen.

Stappen voor het toevoegen van een functie 'Recordkopie maken' in Access

  1. Open uw formulier in de ontwerpweergave.Open uw formulier in de ontwerpweergave
  2. Voeg een opdrachtknop toe. Sla de opdrachtknopwizard over.
  3. Voeg een toe Bij klikken evenement naar de knop.Voeg een On Click-gebeurtenis toe aan de knop
  • Selecteer in de ontwerpweergave de knop.
  • Open het eigenschappenblad (ALT + Enter)
  • Ga naar het tabblad Evenement> Bij klikken>…
  • Wanneer de Kies Builder menu verschijnt, selecteer Code Builder.
  • Klik op OK.
  • Hiermee wordt de VBA-editor geopend.
    1. Kopieer de volgende code en pas deze aan uw behoeften aan. Gebruik de opmerkingen als leidraad.
    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. Test nu de code of deze werkt.

Code uitgelegd

De bovenstaande code is gebruikt voor de database van een boekwinkel. Vanwege boekreeksen zijn er gevallen waarin alle boekdetails (bijv. Auteur, Land, Taal, etc.) hetzelfde zijn, behalve één veld - de Titel. Dus de behoefte aan de code.

De onderstaande lijst toont het programmaverloop.

  1. Controleer of de gebruiker een record heeft geselecteerd om te kopiëren. Er verschijnt een foutmelding als de gebruiker op de knop klikt direct nadat hij op de knop Nieuwe record toevoegen heeft geklikt, waardoor de ID nul wordt.
If IsNull(BookID) Then
     MsgBox prompt:="Please select the record to copy first.", buttons:=vbExclamation
     Exit Sub
End If
  1. Haal de ID of primaire sleutel van de huidige record op en wijs deze toe als waarde voor het huidigeID Dit wordt gebruikt als basis voor de waarden die moeten worden gekopieerd.
currentID = BookID
  1. Voeg een nieuw record toe.
DoCmd.GoToRecord record:=acNewRec
  1. Stel waarden voor bepaalde velden in op basis van de huidigeID Hier worden de gegevens van het geselecteerde record gekopieerd.
'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. Stel de focus in op het veld dat de gebruiker waarschijnlijk als eerste zal bewerken. Dit verbetert de gebruikerservaring, omdat de gebruiker niet handmatig het veld hoeft te selecteren dat nog moet worden bijgewerkt.
 Title.SetFocus      ‘TO DO: change 'Title' with name of field that is going to be edited by the user

Herstel een beschadigde database

Als u om een ​​ongelukkige reden op een dag wakker wordt en uw database niet kunt openen, kunt u hulpprogramma's van derden proberen die presteren Toegang tot reparatie. Het doet wonderen.

Auteur Introductie:

Jayme Stack is een expert op het gebied van gegevensherstel in DataNumen, Inc., de wereldleider in technologieën voor gegevensherstel, waaronder sql herstel en Excel-herstelsoftwareproducten. Voor meer informatie bezoek www.datanumen.com

Reacties zijn gesloten.