Kuinka kopioida tietueet nopeasti käyttöoikeuksissasi

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

  1. Avaa lomake suunnittelunäkymässä.Avaa lomake suunnittelunäkymässä
  2. Lisää komentopainike. Ohita ohjattu komentopainike.
  3. Lisää Klikkaamalla tapahtuman painikkeeseen.Lisää napsautettava tapahtuma 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.
    1. 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
  1. 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.

  1. 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
  1. Hanki nykyisen tietueen tunnus tai ensisijainen avain ja määritä se arvoksi nykyinen ID Tätä käytetään kopioitavien arvojen perustana.
currentID = BookID
  1. Lisää uusi tietue.
DoCmd.GoToRecord record:=acNewRec
  1. 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)
  1. 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

Kommenttien lisääminen on estetty.