บทที่ 7
การสร้างมาโคร
     มาโครหรือแมโคร (Macro) เป็นออบเจ็คฐานข้อมูลอีกตัวหนึ่งที่จะช่วยให้สามารถสร้างกลุ่มคำสั่งที่ทางานแบบอัตโนมัติได้อย่างรวดเร็ว โดยการทำงานจะเรียงลำดับจากคำสั่งแรกไปจนถึงคำสั่งสุดท้ายในมาโครนั้น เหมาะที่จะนำไปใช้กับการทำงานที่ต้องทาซ้ำๆ กัน และไม่ซับซ้อนมาก โดยมาโครจะช่วยลดภาระในการจดจำคำสั่ง ช่วยให้ผู้ใช้ที่ไม่คุ้นเคยกับการใช้คำสั่งใน Access สามารถนำฐานข้อมูลไปใช้งานได้ง่ายขึ้น เช่น ผู้พัฒนาฐานข้อมูลอาจสร้างปุ่มคำสั่ง ที่ควบคุมการทำงานด้วยมาโครในลักษณะต่างๆ เช่น ปุ่มคำสั่งที่ใช้เปิดหรือปิดฟอร์ม ปุ่มคำสั่งที่ใช้ค้นหาข้อมูลที่ตรงกับเงื่อนไขที่กำหนดไว้ และปุ่มคำสั่ง สาหรับพิมพ์รายงาน เป็นต้น โดยผู้ใช้เพียงคลิกปุ่มคำสั่ง ก็สามารถทำงานเหล่านั้นได้ โดยไม่ต้องเรียกใช้คำสั่ง หลายๆ คำสั่งจาก Ribbon ซ้ำๆกันทุกครั้ง

รู้จักกับมาโคร

รู้จักกับมาโคร
     มาโคร (Macro) คือ ชุดคำสั่งที่ทำงานแบบอัตโนมัติ จัดเป็นโปรแกรมประเภทหนึ่งสามารถกำหนดเงื่อนไขการทำงานได้ เช่น ตรวจสอบค่าเพื่อเลือกทำหรือไม่ทำคำสั่งที่กาหนดไว้หรือสามารถนำมาโครมาช่วยทำานในลักษณะต่างๆ เช่น
     - สามารถค้นหาและสอบถามข้อมูล ผ่านทางฟอร์มหรือรายงานโดยไม่ต้องเรียกใช้อ็อบเจ็ค Query โดยตรง
     - สามารถตรวจสอบและแก้ไขข้อมูลที่ป้อนผ่านฟอร์ม การทำงานจะยืดหยุ่นกว่าการใช้กฎการตรวจสอบ (validation rule) ที่กำหนดในโครงสร้างของตาราง
      - ช่วยปรับปรุงการทำงานแบบอัตโนมัติ เช่น การคัดลอก เคลื่อนย้าย และแก้ไขข้อมูล เป็นต้น
     - ช่วยในการสร้างแอพพลิเคชั่น โปรแกรมขึ้นใช้งานเอง เช่น สร้างฟอร์มที่ประกอบด้วยปุ่มคำสั่งต่างๆ โดยมาโครเป็นตัวควบคุมการทำงาน

เริ่มต้นสร้างมาโคร

ขั้นตอนการสร้างมาโครเริ่มต้นจาก
     1. คลิกแท็บ Create
     2. คลิก Macro
     3. เข้าสู่มุมมอง Design ของมาโคร

     4. คลิกปุ่ม Action Catalog ในแท็บ Design
     5. ปรากฏหน้าต่าง Action Catalog ซึ่งประกอบด้วยกลุ่มคำสั่ง ที่จะนามาใช้ในชุดคำสั่งอัตโนมัติ


คำสั่งใน Action Catalog

ใน Action Catalog จะแบ่งคาสงั่ ออกเป็น 2 กลุ่มดังนี้
1. กลุ่ม Program Flow
     - Comment คาสงั่ ที่ใช้ใส่ข้อความที่ผู้ใช้ต้องการ เช่น หมายเหตุเตือนความจา หรือคำอธิบายการใช้งาน
     - Group คำสั่ง สร้างมาโครแบบกลุ่ม
     - If คำสั่ง ใช้สร้างเงื่อนไขการทางานในมาโคร
     - Submacro คำสั่ง สร้างมาโครย่อย
2. กลุ่ม Action
     - Data Entry Operations กลุ่มคำสั่ง ที่ใช้จัดการข้อมูล เช่น DeleteRecord (ลบเรคอร์ด), SaveRecord (จัดเก็บเรคอร์ด) และ EditlisItems (เรียกใช้คาสั่งแก้ไขข้อมูลในสิสต์ Lookup) เป็นต้น
     - Data Import/Export กลุ่มคาสงั่ ที่ใช้ในการนำเข้าและส่งออกข้อมูลระหว่าง ฐานข้อมูล Access และโปรแกรมอื่นๆ เช่น EmailDatabaseOpject (ส่งออบเจ็คจากฐานข้อมูล Access ไปทางอีเมล), ccExportWithFormatting (ส่งข้อมูลจาก Access ไปโปรแกรมอื่นๆ ตามรูปแบบที่กาหนดไว้), ImportExportSpreadsheet (นำเข้าหรือส่งออกข้อมูล Access กับไฟล์ข้อมูล spread sheet)
     - Database Objects กลุ่มคำสั่ง ที่ใช้จัดการออบเจ็คฐานข้อมูล เช่น CopyObject (คัดลอกออบเจ็ค), DeleteObject (ลบออบเจ็คออกจากฐานข้อมูล), RenameObject (เปลี่ยนชื่อออบเจ็ค), PrintObject (พิมพ์ออบเจ็ค)
     - Filter/Query/Search กลุ่มคำสั่ง ที่ใช้กรอง สอบถาม และค้นหาข้อมูล เช่น ApplyFilter (กำหนดเงื่อนไขการกรอง), FindNextRecord (ค้นหาเรคอร์ดถัดไปที่ตรงกับเงื่อนไข), OpenQuery (เปิดใช้ Query)
     - Macro Commands กลุ่มคำสั่ง ควบคุมการทางานของมาโคร เช่น CancelEvent (ยกเลิกเหตุการณ์ที่ทาให้มาโครนั้นทำงาน), RunMacro (เรียกใช้มาโครอื่นๆ จากมาโครที่กำลังทำงาน), StopAllMacros (หยุดการทำงานของมาโครทั้งหมดที่รันค้างอยู่)
     - System Commands กลุ่มคำสั่ง ที่เกี่ยวข้องกับการทางานของระบบฐานข้อมูล เช่น CloseDatabase (ปิดการใช้งานฐานข้อมูล), DisplayHourglassPointer (เปลี่ยนรูปแบบตัวชี้เมาส์จากปกติเป็นนาฬิกาทรายขณะรันมาโคร), QuitAccess (ปิดการทางานโปรแกรม Access),Sendkeys (ส่งรหัสคีย์บอร์ดโดยไม่ต้องกดคีย์บอร์ดจริงๆ ไปให้ Access หรือโปรแกรมอื่นๆที่ใช้งานอยู่), SetWarnings (ซ่อน/แสดงคำเตือนของโปรแกรม Access ระหว่างการทำงาน)
     - User Interface Commands กลุ่มคาสงั่ ติดต่อกับผู้ใช้ เช่น AddMenu (เมนูที่ผู้ใช้สร้างเองเพื่อทางานแทนเมนูหลัก), MessageBox (กล่องข้อความแจ้งข่าวสาร/คำเตือนให้ผู้ใช้ทราบ), ShowToolbars (ซ่อน/แสดงทูลบาร์ที่ผู้ใช้สร้างเอง)
     - Window Management กลุ่มคำสั่งที่ใช้จัดการหน้าต่างการทำงาน เช่น Maximize (ขยายหน้าต่างที่กำลังใช้งานให้มีขนาดใหญ่ที่สุดหรือเต็มหน้าจอ), Minimize (ย่อหน้าต่างที่กำลังใช้งานลงมาให้มีขนาดเล็กที่สุด), MoveAndSizeWindow (ย้ายและปรับขนาดหน้าต่างที่กำลังใช้งาน)

วิธีสร้างมาโครโดยเก็บเป็นออบเจ็ค Macro

เข้ามุมมอง Design โดยคลิก Create ในแท็บ Macro แล้วทำดังนี้
1. เลือกคำสั่ง จาก Add New Action ในที่นี้เลือก OpenForm
2. ใส่ค่าอาร์กิวเมนต์ (ถ้ามี) ในที่นีคื้อ อาร์กิวเมนต์ของคำสั่ง OpenForm
     - Form Name ใส่ชื่อฟอร์ม
     - View เปิดฟอร์มในมุมมองใด
     - Filter Name ใส่ชื่อตัวกรองข้อมูล (ถ้ามี)
     - Where Condition ใส่เงื่อนไขที่ใช้กรองข้อมูล (ถ้ามี)
   - Data Mode จะแสดงฟอร์มแบบเพิ่มเรคอร์ดได้ (Add) แก้ไขได้ (Edit) หรืออ่านได้อย่างเดียว   (Read Only)
     - Window Mode แสดงฟอร์มในมุมมองฟอร์ม (Normal) ซ่อนฟอร์ม (Hidden) ย่อขนาดหน้าต่างให้เล็กที่สุด (Icon) หรือแบบไดอะล็อก (Dialog)
3. คลิกลากคำสั่ง Comment มาวางถ้าจะใส่หมายเหตุ
4. คีย์ข้อความในช่อง Comment เสร็จแล้วคลิก Save
5. ตั้งชื่อมาโครในช่อง Macro Name: ในที่นีตั้ง ชื่อว่า Macro1
6. คลิก OK
7. คลิก Close เพื่อปิดมุมมองออกแบบ





     หากต้องการนำ Macro1 มาผูกกับปุ่มคำสั่ง ที่สร้างขึ้นจากฟอร์ม ทาตามั้น ตอนดังนี้
1) คลิกปุ่ม รายละเอียดนักศึกษา
2) คลิก Property Sheet
3) คลิกแท็บ Event
4) ในแถวคุณสมบัติ On Click ให้คีย์ชื่อ Macro1 หรือจะคลิกปุ่มลูกศรแล้วเลือกจากลิสต์ก็ได้