Naučite se, kako lahko ustvarite funkcijo VBA, ki vam omogoča kopiranje določenih podatkov iz prejšnjih zapisov s samo enim klikom gumba. Ni vam treba večkrat tipkati istih stvari.
Ste že kdaj imeli izkušnjo, ko ste morali v Access vnesti nov zapis, ki ima popolnoma enak nabor vrednosti kot prejšnji zapis, razen enega polja? Lahko je utrujajoče, kajne? Ta vadnica vas bo naučila, kako lahko ustvarite funkcijo, s katero lahko s klikom gumba kopirate določene vrednosti prejšnjega zapisa – s čimer boste prihranili čas pri ponovnem tipkanju. Samo sledite spodnjim korakom.
Prenesi zdaj
Če želite funkcijo začeti uporabljati čim prej, lahko:
Zdaj prenesite vzorčno zbirko podatkov s kodami VBA
V nasprotnem primeru, če želite sami, lahko preberete spodnjo vsebino.
Koraki za dodajanje funkcije »Ustvari kopijo zapisa« v Access
- Odprite obrazec v pogledu oblikovanja.

- Dodajte ukazni gumb. Preskočite čarovnika za ukazne gumbe.
- Dodajanje Na klik dogodek na gumb.
- V pogledu oblikovanja izberite gumb.
- Odprite list z lastnostmi (ALT + Enter)
- Pojdite na zavihek Dogodek > Ob kliku > …
- Ko Izberite Builder se prikaže meni, izberite Code Builder.
- Kliknite OK.
- To bo odprlo urejevalnik VBA.
-
- Kopirajte naslednjo kodo in jo spremenite, da bo ustrezala vašim potrebam. Uporabite komentarje kot vodilo.
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 - Zdaj preizkusite kodo, če deluje.
Razlaga kode
Zgornja koda je bila uporabljena za bazo podatkov knjigarne. Zaradi knjižnih serij obstajajo primeri, ko so vse podrobnosti o knjigi (npr. avtor, država, jezik itd.) enake, razen enega polja – naslova. Torej, potreba po kodi.
Spodnji seznam prikazuje potek programa.
- Preverite, ali je uporabnik izbral zapis za kopiranje. Sporočilo o napaki se bo pojavilo, če uporabnik klikne gumb takoj po kliku gumba Dodaj nov zapis – ID postane ničelen.
If IsNull(BookID) Then MsgBox prompt:="Please select the record to copy first.", buttons:=vbExclamation Exit Sub End If
- Pridobite ID ali primarni ključ trenutnega zapisa in ga dodelite kot vrednost za trenutniID To bo uporabljeno kot osnova za vrednosti, ki jih je treba kopirati.
currentID = BookID
- Dodajte nov zapis.
DoCmd.GoToRecord record:=acNewRec
- Nastavite vrednosti za določena polja na podlagi trenutniID Tukaj se kopirajo podatki iz izbranega 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)
- Fokus nastavi na polje, ki ga bo uporabnik najverjetneje prvo uredil. To izboljša uporabniško izkušnjo, saj uporabniku ni treba ročno izbrati polja, ki ga je treba še posodobiti.
Title.SetFocus ‘TO DO: change 'Title' with name of field that is going to be edited by the user
Popravite poškodovano zbirko podatkov
Če se iz nesrečnega razloga nekega dne zbudite in ne morete odpreti zbirke podatkov, lahko poskusite z orodji drugih proizvajalcev, ki delujejo Popravilo dostopa. Deluje čudeže.
Uvod avtorja:
Jayme Stack je strokovnjak za obnovitev podatkov v DataNumen, Inc., ki je vodilna na svetu na področju tehnologij za obnovitev podatkov, vključno z obnovitev sql in excel programske izdelke za obnovitev. Za več informacij obiščite www.datanumen.com
