Ինչպե՞ս արագորեն կրկնօրինակել գրառումները ձեր մատչման մեջ

Կիսվել հիմա ՝

Իմացեք, թե ինչպես կարող եք ստեղծել VBA գործառույթ, որը թույլ է տալիս պատճենել որոշակի տվյալներ նախորդ գրառումներից ՝ ընդամենը մեկ կոճակի սեղմումով: Կարիք չկա բազմիցս մուտքագրել նույն իրերը:

Դուք երբևէ փորձառու՞մ եք եղել, երբ անհրաժեշտ է Access- ում մուտքագրել նոր գրառում, որն ունի ճիշտ նույն արժեքների հավաքածու նախորդ գրառման հետ, բացառությամբ մեկ դաշտի: Դա կարող է հոգնեցուցիչ լինել, չէ՞: Այս ձեռնարկը կսովորեցնի ձեզ, թե ինչպես կարող եք ստեղծել այնպիսի գործառույթ, որը կոճակի կտտոցով կարող եք պատճենել նախորդ գրառման որոշակի արժեքներ ՝ ժամանակ խնայելով վերաշարադրումից: Պարզապես հետևեք ստորև նշված քայլերին:

Download Now

Եթե ​​ցանկանում եք հնարավորինս շուտ սկսել օգտագործել գործառույթը, ապա կարող եք՝

Ներբեռնեք Նմուշի շտեմարանը VBA կոդերով հիմա

Հակառակ դեպքում, եթե ցանկանում եք ինքնուրույն վարվել, կարող եք կարդալ ստորև բերված բովանդակությունը:

Քայլեր ՝ «Ստեղծել գրառման պատճեն» գործառույթն մուտքում ավելացնելու համար

  1. Բացեք ձեր ձևը դիզայնի տեսանկյունից:Բացեք ձեր ձևը դիզայնի տեսանկյունից
  2. Ավելացրեք հրամանի կոճակ: Բաց թողեք հրամանի կոճակի կախարդը:
  3. Ավելացնել ան Կտտացրեք իրադարձություն դեպի կոճակը:Ավելացրեք սեղմման իրադարձություն կոճակին
  • Դիզայնի տեսանկյունից ընտրեք կոճակը:
  • Բացեք գույքի թերթը (ALT + Enter)
  • Անցեք Իրադարձությունների ներդիր> Սեղմեք>…
  • Երբ Ընտրեք Շինարար ընտրացանկը հայտնվում է, ընտրեք Code Builder:
  • Սեղմեք OK.
  • Սա կբացի VBA խմբագիրը:
    1. Պատճենեք հետևյալ կոդը և փոփոխեք այն ՝ համապատասխանելու ձեր պահանջներին: Օգտագործեք մեկնաբանությունները որպես ուղեցույց:
    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. Այժմ ստուգեք ծածկագիրը, եթե այն գործում է:

Կոդի բացատրություն

Վերը նշված ծածկագիրն օգտագործվել է գրախանութների տվյալների շտեմարանի համար: Գրքերի շարքի պատճառով կան դեպքեր, երբ գրքի բոլոր մանրամասները (օրինակ ՝ Հեղինակ, Երկիր, Լեզու և այլն) նույնն են, բացառությամբ մեկ ոլորտի ՝ Վերնագրի: Այսպիսով, ծածկագրի անհրաժեշտությունը:

Ստորև ներկայացված ցանկը ցույց է տալիս ծրագրի հոսքը:

  1. Ստուգեք, արդյոք օգտվողը պատճենահանման ռեկորդ է ընտրել: Սխալ հաղորդագրությունը կհայտնվի, եթե օգտագործողը կտտացրեց կոճակը անմիջապես «Ավելացնել նոր գրառում» կոճակը սեղմելուց հետո ՝ ID- ն դարձնելով անվավեր:
If IsNull(BookID) Then
     MsgBox prompt:="Please select the record to copy first.", buttons:=vbExclamation
     Exit Sub
End If
  1. Ձեռք բերեք ընթացիկ գրառման ID- ն կամ հիմնական բանալին և նշանակեք այն որպես արժեք ընթացիկ ID Սա կօգտագործվի որպես պատճենվող արժեքների հիմք:
currentID = BookID
  1. Ավելացրեք նոր գրառում:
DoCmd.GoToRecord record:=acNewRec
  1. Որոշակի դաշտերի համար սահմանեք արժեքներ ընթացիկ ID Այստեղ է, որ տվյալները պատճենվում են ընտրված գրառումից:
'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. Սահմանեք կիզակետը այն դաշտի վրա, որը, ամենայն հավանականությամբ, առաջինը կխմբագրվի օգտատիրոջ կողմից։ Սա բարելավում է օգտատիրոջ փորձը, քանի որ վերացնում է օգտատիրոջ կողմից դեռևս թարմացման ենթակա դաշտը ձեռքով ընտրելու անհրաժեշտությունը։
 Title.SetFocus      ‘TO DO: change 'Title' with name of field that is going to be edited by the user

Վերականգնել կոռումպացված տվյալների շտեմարանը

Եթե ​​ցավալի պատճառով մի օր արթնանում եք, չկարողանալով բացել ձեր տվյալների բազան, կարող եք փորձել կատարող երրորդ կողմի գործիքներ Մուտքի նորոգում, Այն հրաշքներ է գործում:

Հեղինակի ներածություն.

Jayme Stack- ը տվյալների վերականգման փորձագետ է DataNumen, Inc., որը տվյալների վերականգման տեխնոլոգիաների համաշխարհային առաջատարն է, այդ թվում sql վերականգնում և գերազանցել վերականգնման ծրագրային արտադրանքները: Լրացուցիչ տեղեկությունների համար այցելեք www.datanumen.com

Կիսվել հիմա ՝

Comments փակվում են: