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
- Otwórz formularz w widoku projektu.

- Dodaj przycisk polecenia. Pomiń kreatora przycisków poleceń.
- Dodaj Na kliknięcie zdarzenie 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.
-
- 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 - 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.
- 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
- 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
- Dodaj nowy rekord.
DoCmd.GoToRecord record:=acNewRec
- 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)
- 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
