Naučite kako možete stvoriti VBA funkciju koja vam omogućuje kopiranje određenih podataka iz prethodnih zapisa samo jednim pritiskom na gumb. Nema potrebe da opetovano upisujete iste stvari.
Jeste li ikada imali iskustvo u kojem trebate unijeti novi zapis u Accessu koji ima potpuno isti skup vrijednosti kao i prethodni zapis osim jednog polja? Može biti zamorno, zar ne? Ovaj vodič će vas naučiti kako možete stvoriti funkciju koja jednim pritiskom na gumb može kopirati određene vrijednosti prethodnog zapisa – štedeći vam vrijeme od ponovnog tipkanja. Samo slijedite korake u nastavku.
Preuzmite sada
Ako želite što prije početi koristiti značajku, možete:
Odmah preuzmite oglednu bazu podataka s VBA kodovima
Inače, ako želite DIY, možete pročitati sadržaj u nastavku.
Koraci za dodavanje funkcije 'Stvori kopiju zapisa' u Access
- Otvorite svoj obrazac u prikazu dizajna.

- Dodaj naredbeni gumb. Preskočite čarobnjaka za naredbeni gumb.
- Dodaj an Na klik događaj do gumba.
- Dok ste u prikazu dizajna, odaberite gumb.
- Otvorite list svojstava (ALT + Enter)
- Idite na karticu Događaj > Na klik > …
- Kada Odaberite Graditelj pojavi se izbornik, odaberite Code Builder.
- Kliknite U redu.
- Ovo će otvoriti VBA Editor.
-
- Kopirajte sljedeći kod i modificirajte ga kako bi odgovarao vašim potrebama. Koristite komentare kao vodič.
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 - Sada testirajte kod radi li.
Objašnjenje koda
Gornji kod korišten je za bazu podataka knjižare. Zbog serije knjiga, postoje slučajevi u kojima su svi podaci o knjizi (npr. autor, država, jezik, itd.) isti osim jednog polja – naslova. Dakle, potreba za kodom.
Donji popis prikazuje tijek programa.
- Provjerite je li korisnik odabrao zapis za kopiranje. Poruka o pogrešci pojavit će se ako korisnik klikne na gumb odmah nakon klika na gumb Dodaj novi zapis – čineći ID nultim.
If IsNull(BookID) Then MsgBox prompt:="Please select the record to copy first.", buttons:=vbExclamation Exit Sub End If
- Dohvatite ID ili primarni ključ trenutnog zapisa i dodijelite ga kao vrijednost za trenutniID Ovo će se koristiti kao osnova za vrijednosti koje će se kopirati.
currentID = BookID
- Dodajte novi zapis.
DoCmd.GoToRecord record:=acNewRec
- Postavite vrijednosti za određena polja na temelju trenutniID Ovo je mjesto gdje se podaci kopiraju iz odabranog zapisa.
'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)
- Postavite fokus na polje koje će korisnik najvjerojatnije prvo urediti. To poboljšava korisničko iskustvo jer eliminira potrebu da korisnik ručno odabire polje koje još treba ažurirati.
Title.SetFocus ‘TO DO: change 'Title' with name of field that is going to be edited by the user
Popravite oštećenu bazu podataka
Ako se jednog dana iz nesretnog razloga probudite i ne možete otvoriti svoju bazu podataka, možete isprobati alate trećih strana koji Popravak pristupa. Čini čuda.
Uvod za autora:
Jayme Stack je stručnjak za oporavak podataka u DataNumen, Inc., koji je svjetski lider u tehnologijama za oporavak podataka, uključujući sql oporavak i excel softverski proizvodi za oporavak. Za više informacija posjetite www.datanumen.com
