เรียนรู้วิธีสร้างฟังก์ชัน VBA ที่ช่วยให้คุณคัดลอกข้อมูลบางอย่างจากระเบียนก่อนหน้าได้ด้วยการคลิกปุ่ม ไม่จำเป็นต้องพิมพ์สิ่งเดิม ๆ ซ้ำ ๆ
คุณเคยมีประสบการณ์ที่ต้องป้อนระเบียนใหม่ใน Access ที่มีชุดค่าเดียวกันกับระเบียนก่อนหน้านี้ทุกประการหรือไม่? มันน่าเบื่อใช่มั้ย? บทช่วยสอนนี้จะสอนวิธีสร้างฟังก์ชั่นด้วยการคลิกปุ่มคุณสามารถคัดลอกค่าบางอย่างของบันทึกก่อนหน้านี้ซึ่งช่วยให้คุณประหยัดเวลาในการพิมพ์ซ้ำ เพียงทำตามขั้นตอนด้านล่างนี้
ดาวน์โหลดตอนนี้
หากคุณต้องการเริ่มใช้งานฟีเจอร์นี้โดยเร็วที่สุด คุณสามารถทำได้ดังนี้:
ดาวน์โหลดฐานข้อมูลตัวอย่างด้วยรหัส VBA ทันที
มิฉะนั้นหากคุณต้องการ DIY คุณสามารถอ่านเนื้อหาด้านล่าง
ขั้นตอนในการเพิ่มฟังก์ชัน 'สร้างสำเนาบันทึก' ใน Access
- เปิดแบบฟอร์มของคุณในมุมมองออกแบบ

- เพิ่มปุ่มคำสั่ง ข้ามวิซาร์ดปุ่มคำสั่ง
- เพิ่ม เมื่อคลิก เหตุการณ์ไปที่ปุ่ม
- ขณะอยู่ในมุมมองออกแบบให้เลือกปุ่ม
- เปิดแผ่นคุณสมบัติ (ALT + Enter)
- ไปที่แท็บเหตุการณ์> เมื่อคลิก> …
- เมื่อราคาของ เลือกตัวสร้าง เมนูจะปรากฏขึ้นเลือก Code Builder
- คลิก OK
- เพื่อเปิด VBA Editor
-
- คัดลอกรหัสต่อไปนี้และแก้ไขให้เหมาะกับความต้องการของคุณ ใช้ความคิดเห็นเป็นแนวทาง
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 หรือคีย์หลักของระเบียนปัจจุบันและกำหนดเป็นค่าสำหรับไฟล์ รหัสปัจจุบัน ซึ่งจะใช้เป็นพื้นฐานสำหรับค่าที่จะคัดลอก
currentID = BookID
- เพิ่มระเบียนใหม่
DoCmd.GoToRecord record:=acNewRec
- ตั้งค่าสำหรับฟิลด์บางฟิลด์ตาม รหัสปัจจุบัน นี่คือที่ที่คัดลอกข้อมูลจากเรกคอร์ดที่เลือก
'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 และผลิตภัณฑ์ซอฟต์แวร์กู้คืน excel ดูข้อมูลเพิ่มเติมได้ที่ wwwdatanumenด้วย.
