Իմացեք, թե ինչպես կարող եք ստեղծել VBA գործառույթ, որը թույլ է տալիս պատճենել որոշակի տվյալներ նախորդ գրառումներից ՝ ընդամենը մեկ կոճակի սեղմումով: Կարիք չկա բազմիցս մուտքագրել նույն իրերը:
Դուք երբևէ փորձառու՞մ եք եղել, երբ անհրաժեշտ է Access- ում մուտքագրել նոր գրառում, որն ունի ճիշտ նույն արժեքների հավաքածու նախորդ գրառման հետ, բացառությամբ մեկ դաշտի: Դա կարող է հոգնեցուցիչ լինել, չէ՞: Այս ձեռնարկը կսովորեցնի ձեզ, թե ինչպես կարող եք ստեղծել այնպիսի գործառույթ, որը կոճակի կտտոցով կարող եք պատճենել նախորդ գրառման որոշակի արժեքներ ՝ ժամանակ խնայելով վերաշարադրումից: Պարզապես հետևեք ստորև նշված քայլերին:
Download Now
Եթե ցանկանում եք հնարավորինս շուտ սկսել օգտագործել գործառույթը, ապա կարող եք՝
Ներբեռնեք Նմուշի շտեմարանը VBA կոդերով հիմա
Հակառակ դեպքում, եթե ցանկանում եք ինքնուրույն վարվել, կարող եք կարդալ ստորև բերված բովանդակությունը:
Քայլեր ՝ «Ստեղծել գրառման պատճեն» գործառույթն մուտքում ավելացնելու համար
- Բացեք ձեր ձևը դիզայնի տեսանկյունից:

- Ավելացրեք հրամանի կոճակ: Բաց թողեք հրամանի կոճակի կախարդը:
- Ավելացնել ան Կտտացրեք իրադարձություն դեպի կոճակը:
- Դիզայնի տեսանկյունից ընտրեք կոճակը:
- Բացեք գույքի թերթը (ALT + Enter)
- Անցեք Իրադարձությունների ներդիր> Սեղմեք>…
- Երբ Ընտրեք Շինարար ընտրացանկը հայտնվում է, ընտրեք Code Builder:
- Սեղմեք OK.
- Սա կբացի VBA խմբագիրը:
-
- Պատճենեք հետևյալ կոդը և փոփոխեք այն ՝ համապատասխանելու ձեր պահանջներին: Օգտագործեք մեկնաբանությունները որպես ուղեցույց:
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 - Այժմ ստուգեք ծածկագիրը, եթե այն գործում է:
Կոդի բացատրություն
Վերը նշված ծածկագիրն օգտագործվել է գրախանութների տվյալների շտեմարանի համար: Գրքերի շարքի պատճառով կան դեպքեր, երբ գրքի բոլոր մանրամասները (օրինակ ՝ Հեղինակ, Երկիր, Լեզու և այլն) նույնն են, բացառությամբ մեկ ոլորտի ՝ Վերնագրի: Այսպիսով, ծածկագրի անհրաժեշտությունը:
Ստորև ներկայացված ցանկը ցույց է տալիս ծրագրի հոսքը:
- Ստուգեք, արդյոք օգտվողը պատճենահանման ռեկորդ է ընտրել: Սխալ հաղորդագրությունը կհայտնվի, եթե օգտագործողը կտտացրեց կոճակը անմիջապես «Ավելացնել նոր գրառում» կոճակը սեղմելուց հետո ՝ ID- ն դարձնելով անվավեր:
If IsNull(BookID) Then MsgBox prompt:="Please select the record to copy first.", buttons:=vbExclamation Exit Sub End If
- Ձեռք բերեք ընթացիկ գրառման ID- ն կամ հիմնական բանալին և նշանակեք այն որպես արժեք ընթացիկ ID Սա կօգտագործվի որպես պատճենվող արժեքների հիմք:
currentID = BookID
- Ավելացրեք նոր գրառում:
DoCmd.GoToRecord record:=acNewRec
- Որոշակի դաշտերի համար սահմանեք արժեքներ ընթացիկ 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)
- Սահմանեք կիզակետը այն դաշտի վրա, որը, ամենայն հավանականությամբ, առաջինը կխմբագրվի օգտատիրոջ կողմից։ Սա բարելավում է օգտատիրոջ փորձը, քանի որ վերացնում է օգտատիրոջ կողմից դեռևս թարմացման ենթակա դաշտը ձեռքով ընտրելու անհրաժեշտությունը։
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
