Kaip greitai kopijuoti savo prieigos įrašus

Bendrinti dabar:

Sužinokite, kaip galite sukurti VBA funkciją, leidžiančią nukopijuoti tam tikrus duomenis iš ankstesnių įrašų vienu mygtuko paspaudimu. Nereikia kartoti tų pačių dalykų.

Ar kada nors teko patirti, kad programoje „Access“ reikia įvesti naują įrašą, kurio reikšmių rinkinys lygiai toks pat, kaip ir ankstesniame įraše, išskyrus vieną lauką? Tai gali būti nuobodu, tiesa? Šioje pamokoje sužinosite, kaip sukurti funkciją, kurią naudodami spustelėję mygtuką galite nukopijuoti tam tikras ankstesnio įrašo reikšmes – taip sutaupysite laiko, kai nereikės įvesti iš naujo. Tiesiog atlikite toliau nurodytus veiksmus.

Atsisiųsti dabar

Jei norite kuo greičiau pradėti naudoti šią funkciją, galite:

Atsisiųskite pavyzdinę duomenų bazę su VBA kodais dabar

Kitu atveju, jei norite pasidaryk pats, galite perskaityti toliau pateiktą turinį.

„Access“ funkcijos „Sukurti įrašo kopiją“ pridėjimo veiksmai

  1. Atidarykite formą dizaino rodinyje.Atidarykite savo formą dizaino rodinyje
  2. Pridėkite komandos mygtuką. Praleiskite komandų mygtuko vedlį.
  3. Pridėti a Paspaudus įvykis prie mygtuko.Prie mygtuko pridėkite įvykį spustelėjus
  • Dizaino rodinyje pasirinkite mygtuką.
  • Atidarykite ypatybių lapą (ALT + Enter)
  • Eikite į skirtuką Įvykis > Spustelėjus >…
  • Kai Pasirinkite Builder meniu, pasirinkite Code Builder.
  • Spustelėkite OK (gerai).
  • Tai atidarys VBA redaktorių.
    1. Nukopijuokite šį kodą ir pakeiskite jį pagal savo poreikius. Naudokite komentarus kaip vadovą.
    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. Dabar patikrinkite kodą, ar jis veikia.

Kodas paaiškintas

Aukščiau pateiktas kodas buvo naudojamas knygyno duomenų bazei. Dėl knygų serijų pasitaiko atvejų, kai visa knygos informacija (pvz., autorius, šalis, kalba ir kt.) yra ta pati, išskyrus vieną lauką – pavadinimą. Taigi, kodo poreikis.

Toliau pateiktame sąraše parodyta programos eiga.

  1. Patikrinkite, ar vartotojas pasirinko kopijuoti įrašą. Jei vartotojas spustelėja mygtuką iškart po to, kai spustelėja mygtuką Pridėti naują įrašą, pasirodys klaidos pranešimas, todėl ID taps niekinis.
If IsNull(BookID) Then
     MsgBox prompt:="Please select the record to copy first.", buttons:=vbExclamation
     Exit Sub
End If
  1. Gaukite dabartinio įrašo ID arba pirminį raktą ir priskirkite jį kaip reikšmę dabartinis ID Tai bus naudojama kaip kopijuojamų verčių pagrindas.
currentID = BookID
  1. Pridėti naują įrašą.
DoCmd.GoToRecord record:=acNewRec
  1. Nustatykite tam tikrų laukų reikšmes pagal dabartinis ID Čia duomenys nukopijuojami iš pasirinkto įrašo.
'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. Nustatykite fokusą į lauką, kurį vartotojas greičiausiai redaguos pirmiausia. Tai pagerina vartotojo patirtį, nes jam nereikia rankiniu būdu pasirinkti lauko, kurį dar reikia atnaujinti.
 Title.SetFocus      ‘TO DO: change 'Title' with name of field that is going to be edited by the user

Pataisykite sugadintą duomenų bazę

Jei dėl apgailėtinos priežasties vieną dieną atsibundate negalėdami atidaryti duomenų bazės, galite išbandyti trečiųjų šalių įrankius, kurie Prieigos remontas. Tai daro stebuklus.

Autoriaus įvadas:

Jayme'as Stackas yra duomenų atkūrimo ekspertas DataNumen, Inc., kuri yra pasaulyje duomenų atkūrimo technologijų lyderė, įskaitant sql atkūrimas ir Excel atkūrimo programinės įrangos produktai. Norėdami gauti daugiau informacijos, apsilankykite WWW.datanumen.com

Bendrinti dabar:

Komentarai yra uždaryti.