Opi luomaan VBA-toiminto, jonka avulla voit kopioida tiettyjä tietoja aiemmista tietueista yhdellä napin painalluksella. Samoja asioita ei tarvitse kirjoittaa toistuvasti.
Onko sinulla koskaan ollut kokemusta siitä, että sinun on syötettävä Accessiin uusi tietue, jolla on täsmälleen samat arvot kuin edellisellä tietueella yhtä kenttää lukuun ottamatta? Se voi olla väsyttävää, eikö? Tämä opetusohjelma opettaa sinulle, kuinka voit luoda toiminnon, jonka voit kopioida yhdellä napin painalluksella edellisen tietueen tietyt arvot - mikä säästää aikaa uudelleenkirjoittamisesta. Seuraa vain alla olevia ohjeita.
Lataa nyt
Jos haluat aloittaa ominaisuuden käytön mahdollisimman pian, voit:
Lataa näytetietokanta VBA-koodeilla nyt
Muussa tapauksessa voit lukea sisällön alla olevasta sisällöstä.
Vaiheet Luo tietuekopio -toiminnon lisäämiseen Accessiin
- Avaa lomake suunnittelunäkymässä.

- Lisää komentopainike. Ohita ohjattu komentopainike.
- Lisää Klikkaamalla tapahtuman painikkeeseen.
- Valitse painike suunnittelunäkymässä.
- Avaa ominaisuusarkki (ALT + Enter)
- Siirry Tapahtumat-välilehdelle> Napsauta>
- Kun Valitse Rakentaja valikko avautuu, valitse Code Builder.
- Valitse OK.
- Tämä avaa VBA-editorin.
-
- Kopioi seuraava koodi ja muokkaa sitä tarpeidesi mukaan. Käytä kommentteja oppaana.
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 - Testaa nyt koodi, jos se toimii.
Koodi selitetty
Yllä olevaa koodia käytettiin kirjakaupan tietokantaan. Kirjasarjojen takia on tapauksia, joissa kaikki kirjan tiedot (esim. Tekijä, maa, kieli jne.) Ovat samat paitsi yksi kenttä - Otsikko. Siksi tarvitaan koodi.
Alla olevassa luettelossa näkyy ohjelman kulku.
- Tarkista, onko käyttäjä valinnut kopioitavan tietueen. Virheilmoitus tulee näkyviin, jos käyttäjä napsauttaa painiketta heti napsauttamalla Lisää uusi tietue -painiketta - jolloin ID on tyhjä.
If IsNull(BookID) Then MsgBox prompt:="Please select the record to copy first.", buttons:=vbExclamation Exit Sub End If
- Hanki nykyisen tietueen tunnus tai ensisijainen avain ja määritä se arvoksi nykyinen ID Tätä käytetään kopioitavien arvojen perustana.
currentID = BookID
- Lisää uusi tietue.
DoCmd.GoToRecord record:=acNewRec
- Aseta arvot tietyille kentille nykyinen ID Tällöin tiedot kopioidaan valitusta tietueesta.
'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)
- Aseta kohdistus kenttään, jota käyttäjä todennäköisimmin muokkaa ensimmäisenä. Tämä parantaa käyttökokemusta, koska käyttäjän ei tarvitse valita manuaalisesti kenttää, jota on vielä muokattava.
Title.SetFocus ‘TO DO: change 'Title' with name of field that is going to be edited by the user
Korjaa vioittunut tietokanta
Jos valitettavasta syystä heräät yhden päivän, et pysty avaamaan tietokantaa, voit kokeilla kolmannen osapuolen työkaluja, jotka suorittavat Kulun korjaus. Se tekee ihmeitä.
Tekijän esittely:
Jayme Stack on tietojen palauttamisen asiantuntija DataNumen, Inc., joka on maailman johtava tietojen palautustekniikoissa, mukaan lukien sql-palautus ja Excel-palautusohjelmistotuotteet. Lisätietoja osoitteessa www.datanumen.com
