Jak szybko powielać rekordy w dostępie

Podziel się teraz:

Dowiedz się, jak utworzyć funkcję VBA, która umożliwia kopiowanie niektórych danych z poprzednich rekordów za pomocą jednego kliknięcia przycisku. Nie ma potrzeby wielokrotnego wpisywania tych samych rzeczy.

Czy kiedykolwiek zdarzyło Ci się, że musisz wprowadzić nowy rekord w programie Access, który ma dokładnie ten sam zestaw wartości z poprzednim rekordem, z wyjątkiem jednego pola? To może być męczące, prawda? Ten samouczek nauczy Cię, jak utworzyć funkcję, która jednym kliknięciem przycisku skopiuje określone wartości z poprzedniego rekordu - oszczędzając czas związany z przepisywaniem. Po prostu wykonaj poniższe czynności.

Pobierz teraz

Jeśli chcesz zacząć korzystać z tej funkcji jak najszybciej, możesz:

Pobierz teraz przykładową bazę danych z kodami VBA

W przeciwnym razie, jeśli chcesz wykonać majsterkowanie, możesz przeczytać poniższą zawartość.

Kroki, aby dodać funkcję „Utwórz kopię rekordu” w programie Access

  1. Otwórz formularz w widoku projektu.Otwórz formularz w widoku projektu
  2. Dodaj przycisk polecenia. Pomiń kreatora przycisków poleceń.
  3. Dodaj Na kliknięcie zdarzenie do przycisku.Dodaj zdarzenie po kliknięciu do przycisku
  • W widoku projektu wybierz przycisk.
  • Otwórz arkusz właściwości (ALT + Enter)
  • Przejdź do karty Zdarzenie> Po kliknięciu>…
  • Podczas Wybierz Builder W menu podręcznym wybierz opcję Code Builder.
  • Kliknij przycisk OK.
  • Otworzy się edytor VBA.
    1. Skopiuj poniższy kod i dostosuj go do swoich potrzeb. Użyj komentarzy jako przewodnika.
    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. Teraz przetestuj kod, czy działa.

Kod wyjaśniony

Powyższy kod został użyty w bazie danych księgarni. Ze względu na serie książek zdarzają się przypadki, w których wszystkie szczegóły książki (np. Autor, kraj, język itp.) Są takie same, z wyjątkiem jednego pola - tytułu. Stąd potrzeba kodu.

Poniższa lista przedstawia przebieg programu.

  1. Sprawdź, czy użytkownik wybrał rekord do skopiowania. Komunikat o błędzie pojawi się, jeśli użytkownik kliknie przycisk zaraz po kliknięciu przycisku Dodaj nowy rekord, co oznacza, że ​​identyfikator jest pusty.
If IsNull(BookID) Then
     MsgBox prompt:="Please select the record to copy first.", buttons:=vbExclamation
     Exit Sub
End If
  1. Uzyskaj identyfikator lub klucz podstawowy bieżącego rekordu i przypisz go jako wartość dla obecny ID Będzie to służyć jako podstawa do kopiowania wartości.
currentID = BookID
  1. Dodaj nowy rekord.
DoCmd.GoToRecord record:=acNewRec
  1. Ustaw wartości dla niektórych pól na podstawie obecny ID W tym miejscu dane są kopiowane z wybranego rekordu.
'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. Ustaw fokus na polu, które najprawdopodobniej będzie edytowane przez użytkownika jako pierwsze. Zwiększa to komfort użytkowania, eliminując konieczność ręcznego wybierania pola, które nadal wymaga aktualizacji.
 Title.SetFocus      ‘TO DO: change 'Title' with name of field that is going to be edited by the user

Napraw uszkodzoną bazę danych

Jeśli z niefortunnego powodu obudzisz się pewnego dnia, nie mogąc otworzyć bazy danych, możesz wypróbować narzędzia innych firm, które działają Dostęp do naprawy. Działa cuda.

Wprowadzenie autora:

Jayme Stack jest ekspertem w dziedzinie odzyskiwania danych w DataNumen, Inc., która jest światowym liderem w technologiach odzyskiwania danych, w tym odzyskiwanie sql i doskonałe oprogramowanie do odzyskiwania. po więcej informacji odwiedź www.datanumen.com

Podziel się teraz:

Możliwość dodawania komentarzy nie jest dostępna.