Bir tugmani bosish bilan oldingi yozuvlardan ma'lum ma'lumotlarni nusxalash imkonini beruvchi VBA funksiyasini qanday yaratishingiz mumkinligini bilib oling. Bir xil narsalarni qayta-qayta yozish kerak emas.
Access-da oldingi yozuv bilan bir xil qiymatlar to'plamiga ega bo'lgan yangi yozuvni kiritishingiz kerak bo'lgan tajribangiz bormi? Bu zerikarli bo'lishi mumkin, to'g'rimi? Ushbu qo'llanma sizga tugmani bosish orqali oldingi yozuvning ma'lum qiymatlarini nusxalashingiz mumkin bo'lgan funksiyani qanday yaratishni o'rgatadi - bu sizni qayta yozishdan vaqtni tejaydi. Quyidagi amallarni bajaring.
Hozir yuklab olmoq
Agar siz ushbu funksiyadan iloji boricha tezroq foydalanishni boshlamoqchi bo'lsangiz, quyidagilarni qilishingiz mumkin:
VBA kodlari bilan namunaviy ma'lumotlar bazasini hozir yuklab oling
Aks holda, agar siz DIY qilishni istasangiz, quyidagi tarkibni o'qishingiz mumkin.
Access-da "Yozuv nusxasini yaratish" funksiyasini qo'shish qadamlari
- Shaklni dizayn ko'rinishida oching.

- Buyruq tugmasi qo'shing. Buyruqlar tugmasi ustasini o'tkazib yuboring.
- Qo'shish Kliklang hodisani tugmaga bosing.
- Dizayn ko'rinishida tugmani tanlang.
- Xususiyatlar varag'ini oching (ALT + Enter)
- Voqealar yorlig'iga o'ting > Bosing > ...
- qachon Builder-ni tanlang menyu ochiladi, Code Builder-ni tanlang.
- OK ni bosing.
- Bu VBA muharririni ochadi.
-
- Quyidagi koddan nusxa oling va uni ehtiyojlaringizga mos ravishda o'zgartiring. Izohlardan qo'llanma sifatida foydalaning.
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 - Endi kodning ishlayotganligini tekshiring.
Kod tushuntirildi
Yuqoridagi kod kitob do'konining ma'lumotlar bazasi uchun ishlatilgan. Kitoblar seriyasi tufayli kitobning barcha tafsilotlari (masalan, Muallif, Mamlakat, Til va h.k.) bir xil bo'lgan holatlar mavjud bo'lib, bitta maydondan tashqari - Sarlavha. Shunday qilib, kodga bo'lgan ehtiyoj.
Quyidagi ro'yxat dastur oqimini ko'rsatadi.
- Foydalanuvchi nusxa olish uchun yozuvni tanlaganligini tekshiring. Agar foydalanuvchi "Yangi yozuv qo'shish" tugmasini bosgandan so'ng tugmani bosgan bo'lsa, xato xabari paydo bo'ladi - ID null qiladi.
If IsNull(BookID) Then MsgBox prompt:="Please select the record to copy first.", buttons:=vbExclamation Exit Sub End If
- Joriy yozuvning identifikatorini yoki asosiy kalitini oling va uni qiymat sifatida belgilang joriy identifikator Bu nusxa olinadigan qiymatlar uchun asos sifatida ishlatiladi.
currentID = BookID
- Yangi rekord qo'shing.
DoCmd.GoToRecord record:=acNewRec
- Muayyan maydonlar uchun qiymatlarni o'rnating joriy identifikator Bu erda tanlangan yozuvdan ma'lumotlar ko'chiriladi.
'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)
- Fokusni foydalanuvchi tomonidan birinchi bo'lib tahrirlanishi ehtimoli yuqori bo'lgan maydonga o'rnating. Bu foydalanuvchi tajribasini yaxshilaydi, chunki foydalanuvchi hali yangilanishi kerak bo'lgan maydonni qo'lda tanlash zaruratini yo'q qiladi.
Title.SetFocus ‘TO DO: change 'Title' with name of field that is going to be edited by the user
Buzuq ma'lumotlar bazasini ta'mirlash
Agar biron bir sababga ko'ra siz ma'lumotlar bazasini ocholmasa, bir kun uyg'onsangiz, uchinchi tomon vositalarini sinab ko'rishingiz mumkin. Kirish ta'mirlash. Bu mo''jizalar yaratadi.
Muallif kirish:
Jayme Stack - ma'lumotlarni qayta tiklash bo'yicha mutaxassis DataNumenMa'lumotlarni qayta tiklash texnologiyalari bo'yicha jahon yetakchisi bo'lgan , Inc sqlni tiklash va excel tiklash dasturiy mahsulotlar. Qo'shimcha ma'lumot olish uchun tashrif buyuring www.datanumen.com
