หน่วยที่9 การใช้งานแมโครใน Access สาระสำคัญ แม้ว่าจะสามารถนำโปรแกรม Microsoft Access ไปใช้งานในการจัดการฐานข้อมูลได้โดยตรงแต่ใน บางกรณีที่ต้องการให้โปรแกรมทำงานโดยอัตในมัติ เพื่อให้ผู้ใช้งานที่ไม่มีพื้นฐานการใช้งานMicrosoft Access สามารถใช้งานได้จำเป็นที่จะต้องใช้แมโครมาช่วยพัฒนางาน สาระการเรียนรู้ 1. การสร้างแมโครแบบฝังตัว 2. การสร้างแมโครเตี๋ยว 3. คำสั่งหรือแอคชันในแม่โคร 4. การกำหนดเงื่อนไขในแม่โคร 5. การสร้างและใช้งานกลุ่มแมโคร จุดประสงค์เชิงพฤติกรรม 1. สร้างแมโครแบบฝังตัวได้ 2. สร้างแมโครแบบเดียวได้ 3. บอกและใช้คำสั่งหรือแอคชันในแมโครได้อย่างถูกต้อง 4. กำหนดเงื่อนไขในแมโครได้ 5. สร้างและใช้งานกลุ่มแมโครได้ สมรรถนะอาชีพ สร้างและใช้งานแมโครในโปรแกรม Microsoft Access
แมโคร (Macro) เป็นส่วนหนึ่งของโปรแกรม Microsoft Access ซึ่งประกอบด้วยชุดคำสังพิเศษที่จะ ช่วยสั่งงานให้เป็นไปตามที่ต้องการได้โดยอัดโนมัติ โดยเฉพาะกับงานที่ประกอบด้วยงานย่อยหลายงานที่ต้อง ทำซ้ำบ่อย ๆ การใช้แมโครจะชวยให้เราสามารถสั่งงานได้ในคราวเดียว นอกจากนี้ยังสามารถเขียนแมโคร เพื่อให้ทำงานในลักษณะพิเศษต่าง ๆ ซึ่งไม่สามารถทำได้โดยวิซีปกติเช่น การแสดงข้อความเตือนผู้ใช้งาน การ ถ่ายโอนข้อมูลไปยังโปรแกรมอื่น ๆ 1. การสร้างแมโครแบบฝั่งตัว (Embedded Macro) การสร้างแมโครใน Microsoft Access สามารถสร้างแมโครแบบฝังตัวในฟอร์มหรือรายงาน โดยจะทำงานตามเหตุการณ์ เช่น การคลิกปุ่ม ในฟอร์มหรือรายงาน ตังตัวอย่างต่อไปนี้ 1) โดยนำฟอร์มป้อนข้อมูลนักศึกษาที่เคยสร้างในหน่วยที่ 7 มาคัดลอก ดังรูปที่ 9.1 1) คลิกที่ฟอร์มต้นทางที่ต้องการ 2) คลิกเมาส์ขวาเพื่อเปิดมนูลัด แล้วเลือกรายการ คัดลอก (หรือกดแป้นพิมพ์ [Ctrl [C) 3) คลิกเมาส์ขวาอีกครั้งเพื่อเปิดมนูลัด แล้วเลือกรายการ วาง (หรือกดแป้นพิมพ์ [Ctrl V) 4) จะปรากฎหน้าต่างการวาง ให้ตั้งชื่อฟอร์มเป็น Form แสดงข้อมูล 5) กดปุ่ม (ตกลง) รูปที่ 9. 1 แสดงการคัดลอกฟอร์ม 2) เปิดฟอร์มที่คัดลอก แล้วแก้ใขคุณสมบัติการป้อนข้อมูลดังรูปที่ 9.2 รูปที่ 9.2 แสดงการปรับเปลี่ยนคุณสมบัติให้เป็นฟอร์มแสดงข้อมูล
3) เปิดฟอร์มในมุมมองฟอร์ม จะเห็นว่าเราสามารถเลือนแสดงข้อมูลในระเบียนต่าง ๆ โดยใช้ ปุ่มนำทาง (Navigator Bar) ทางด้านล่าง ดังรูปที่ 9.3 รูปที่ 9.3 แสดงการเลื่อนแสดงระเบียนโดยใช้ปุ่มนำทาง 4) กำหนดคุณสมบัติ ตัวเลือกระเบียน และ ปุ่มนำทาง เป็น ไม่ใช่ดังรูปที่ 9.4 รูปที่ 9.4 แสดงการกำหนดคุสมบัติของฟอร์มไม่ให้แสดงปุ่มนำทางและตัวเลือกระเบียน 5) ใช้คอนโทรลเพื่อสร้างปุ่มคำสั่งในส่วนท้ายของฟอร์ม ดังรูปที่ 9.5
รูปที่ 9.5 แสดงการสร้างปุ่มในส่วนท้ายของฟอร์ม 6) ดำเนินการในหน้าต่างโต้ตอบ เพื่อกำหนดการทำงานของปุ่ม โดยเลือก การนำทางระเบียน เพื่อไปยังระเบียนแรก แล้วกดปุ่ม (เสร็จสิ้น) ดังรูปที่ 9.6 รูปที่ 9.6 แสดงหน้าต่างตัวช่วยสร้างปุ่มคำสั่ง
7) จะได้ผลลัพธ์ดังรูปที่ 9.7 รูปที่ 9.7 แสดงผลลัพธ์ของการสร้างปุ่มคำสั่ง 8) ดำเนินการสร้างปุ่มคำสั่งต่าง ๆ ในลักษณะคล้ายกัน เพื่อให้ได้ผลลัพธ์ดังรูปที่ 9.8 รูปที่ 9.8 แสดงผลลัพธ์ของปุ่มคำสั่งในการเลื่อนระเบียน
9) ลองคลิกปุ่มคำลังทีสร้าง แล้วดูคุณสมบัติในช่วงของเหตุการณ์ (Event) จะพบว่ามีรายการ แมโครฝังตัว ในส่วนของเหตุการณ์ เมื่อคลิก (On Clik) ดังรูปที่ 9.9 รูปที่ 9.9 แสดงแมโครฝังตัวที่เกิดจากผลการสร้างปุ่มคำสั่ง 10) จากนั้นคลิกที่ปุ่ม [...] ทางด้านหลังของรายการ จะปรากฎหน้าจอภาพการสร้างแมโครฝังตัว จากปุ่มคำสั่งง ดังรูปที่ 9.10 รูปที่ 9.10 แสดงหน้าจอการออกแบบแม่โคร จากรูปที่ 9.10 จะเป็นส่วนหน้าจอการออกแบบแมโคร ซึ่งประกอบด้วยส่วนต่าง ๆ ได้แก่ 1. ส่วนรายละเอียดของคำสั่งสังงานแม่โคร 2. ปุ่มเครื่องมือ 3. ชุดคำสั่งการสั่งงาน (Action) 4. ชุดคำสั่งการควบคุมการดำเนินการ (Program Flow)
2. การสร้างแมโครเดี่ยว (Standalone Macro) นอกจากการสร้างแมโครแบบฝังตัวแล้ว เรายังสามารถสร้างแมโครเดี่ยว เพื่อนำไปใช้งานใน ฟอร์มหรือรายงานต่าง ๆ ได้ โดยมีขั้นตอนการสร้างดังนี้ 1) เลือกริบบอน สร้าง แล้วคลิกที่ปุ่ม แมโคร (Macro) ดังรูปที่ 9.11 รูปที่ 9.11 แสดงขั้นตอนการสร้างแมโครโดยการออกแบบเอง 2) จะปรากฎหน้าต่างการออกแบบแมโคร ดังรูปที่ 9.12 ซึ่งเราสามารถเพิ่มคำสั่งได้ 2 วิธี คือ 1) เลือกจากปุ่มรายการเลือก 2) เลือกจากรายการคำสังในหน้าต่างด้านข้าง แล้วลากเข้ามาในพื้นที่การสร้างแมโคร รูปที่ 9.12 แสดงวิธีเพิ่มคำสั่งในหน้าต่างแมโคร เมื่อทำการเลือกคำสั่งแมโคร จะปรากฎหน้าต่าง ดังรูปที่ 9.13
รูปที่ 9. 13 แสดงส่วนประกอบของการเขียนแมโคร โดยส่วนประกอบในการเขียนแม่โคร ได้แก่ 1) ชื่อคำสั่งการกระทำ หรือ แอดชัน (Action) 2) ส่วนกำหนดรายละเอียดของแอคชัน หรือ แมโครอากิวเมนต์ (Macro Arguments) เพื่อใช้ กำหนดและปรับแต่งค่าต่าง ๆ ซึ่งจะเปลี่ยนไปตามแอคขันคำสั่งที่ใช้ 3) ส่วนควบคุม ในกรณีต้องการเขียนควบคุมกรทำงานของแมโคร เช่นถ้าต้องการเพิ่มส่วน ข้อคิดเห็น (Comment) สามารถทำได้โดยดับเบิลคลิกที่รายการ ข้อคิดเห็นในแถบด้านข้าง สำหรับการเรียนรู้การสร้างและใช้งานแมโคร เราจะเรียนรู้ผ่านตัวอย่าง ดังต่อไปนี้ ตัวอย่าง การสร้างแมโครแสดงข้อความต้อนรับ และเปิดฟอร์ม 1) ใช้ริบบอน สร้าง และคลิกที่ปุ่มแมโคร จากนั้นกำหนดแอคซันคำสั่งและรายละเอียดของ แอคชัน ดังรูปที่ 9.14 สาระน่ารู้ : เราสามารถย่อ หรือปิดการแสดงรายละเอียดของแอคชันคำสั่งได้ โดย กดปุ่ม [-] ด้านหน้า แอคชัน หรือใช้ปุ่มเครื่องมือขยายหรือยุบแอคชั่น ทางด้านบนของแกบ ริบบอนเครื่องมือแมโคร
รูปที่ 9.14 แสดงการสร้างแมโคร 2) กดปุ่มเรียกใช้ ! บนแถบเครื่องมือด้านบน เพื่อรันแมโคร 3) จะมีหน้าต่างแจ้งให้บันทึกชื่อแมโครที่ ให้กำหนดชื่อเป็น Macro1 ตามค่าที่โปรแกรมกำหนด จากนั้นแมโครจะทำงานตามขั้นตอนดังนี้คือ 1. เปิดหน้าต่างต้อนรับ จากคำสั่ง MessageBox ดังรูปที่ 9.15 รูปที่ 9.15 แสดงหน้าต่างต้อนรับซึ่งเกิดจากคำสั่ง Message Box
2. เมื่อปุ่ม [ตกลง] ในหน้าต่างต้อนรับการทำงาน จะเปิดฟอร์ม แสดงข้อมูล ตามคำสั่ง OpenForm 3. ตัวแทรกหรือเคอร์เซอร์จะอยู่ในช่อง บันทึกย่อ ซึ่งเกิดจากการใช้คำสัง GotoControl ดังรูปที่ 9.16 รูปที่ 9.16 แสดงผลลัพธ์ที่เกิดจากคำสังที่กำหนดในแมโคร จะเห็นว่าการทำงานของแม่โคร จะเป็นไปตามลำดับของแอคชันและรายละเอียดของแอคชันตามที่ กำหนดไว้
3. คำสั่งหรือแอคชันในแมโคร คำสั่งที่ใช้งานในแมโครของ Access 2016 มีอยู่เป็นจำนวนมาก คำสั่งที่นิยมใช้งานได้แก่
คำสั่งแมโครบางตัวอาจไม่แสดงขึ้นมาต้องกดปุ่ม แสดงแอดชับทั้งหมด (Show All Actions) ทางด้านบนของแถบริบบอนเครื่องมือแมโคร จึงจะเรียกใช้ได้ เช่น 4. การกำหนดเงื่อนไขในแมโคร การกำหนดเงื่อนไขการทำงาน อาจทำง่าย ๆ โดยวิธีกำหนดค่าในช่องเงื่อนไข เช่น ต้องการสร้าง แครเพื่อแสดงข้อมูลพนักงานตามรหัสแผนก เราสามารถสร้างได้โดยกำหนดช่องเงื่อนไซ Where เป็น Depart = [กรุณาป้อนรหัสแผนก] ในลักษณะดังรูปที่ 9.17
รูปที่ 9.17 แสองการกำหนดเงื่อนใยอย่างายในแมโคร เมื่อรันแมโคร จะได้ผลลัพธ์ดังรูปที่ 9.18 คือมีหน้าต่างสอบถามให้ผู้ใช้ป้อนรหัสแผนก ถ้า กำหนดรหัสแผนกเป็น 2 จะได้ผลลัพธ์เป็นรายการข้อมูพนักงานขอแผนก "การผลิต" ดังรูปที่ 9.18 รูปที่ 9.18 แสดงผลลัพธ์การทำงานของแมโครที่กำหนดเงื่อนไขอย่างง่ายในช่อง Where แต่กรณีที่มีความซับซ้อนอาจกำหนดเงื่อนไขของแมรโครโดยใช้การควบคุมแบบ : ได้โดยดับเบิลคลิกที่ รายการ if ทางหน้าต่างขวามือ จะทำให้มีการแสดงแม่โครในลักษณะ ดังรูปที่ 9.19 ซึ่งสามารถกำหนดนิพจน์ เงื่อนไข และเพิ่มการกระทำที่ต้องการได้ g=เช่น ใช้ฟังก์ชัน InputBox เพื่อให้แสดงรับข้อมูลมาตรวจสอบ รหัสผ่าน โดยกำหนดเป็น InputBox(“Please Enter Password”)="1234”ถ้าป้อนรหัสถูกต้องเป็น 1234 ก็ จะให้เปิดฟอร์มแสดงข้อมูล
รูปที่ 9.19 แสดงการเพิ่มการควบคุมแบบ if เพื่อตรวจสอบเงื่อนไขในแมโคร นอกจากนั้นยังสามารถเพิ่มคำสั่ง Else และ Elesif จากตัวคำสั่งได้โดยคลิกจากรายการทางด้านล่าง เช่นจาก ตัวอย่าง ให้เพิ่ม Else เข้าไป เพื่อให้กรณีป้อนหัสไม่ถูกต้อง ให้แสดงข้อความเตือนว่า"เสียใจด้วยครับ คุณป้อน รหัสไม่ถูกต้อง" โดยกำหนดแมโคร ดังรูปที่ 9.20 รูปที่ 9.20 แสดงการเพิ่ม Else เพื่อให้แสดงข้อความในกรณีรหัสผ่านไม่ถูกต้อง กรณีต้องการให้กลับมารับรหัสผ่านซ้ำอีกครั้งจนกว่าจะป้อนถูก อาจใช้คำสั่ง Run Macro ซ้ำเดิมอีก ครั้ง โดยชื่อ Macro ที่ระบุในกรณีต้องเป็น Macro ที่เรียกใช้งาน ดังรูปที่ 9.21
รูปที่ 9.21 แสดงการใช้คำสัง RunMacro เพื่อให้กลับมาทำซ้ำกรณีป้อนรหัสไม่ถูกต้อง 5. การสร้างและใช้งานกลุ่มแมโคร เราอาจนำแมโครที่สัมพันธ์กันมารวมเป็นกสุมแมโคร (Macro Group) เดียวกันเพื่อความ สะดวกในการเรียกใช้งาน โดยสร้างเป็นแมโครย่อย (Sub Macro) หลายตัวรวมไว้ในแมโครหลักเดียวกัน เช่น กรณีต้องการสร้างปุ่มเพื่อเปิดฟอร์มในโหมดการทำงานต่าง 1 แทนที่จะใช้แมโครหลายตัว อาจสร้างเป็นแมโคร ย่อยการเปิดฟอร์มในโหมดข้อมูลต่าง ' แล้วรวมเป็นกลุ่มไว้ในแมโครหลักเดียวกัน โดยการสร้างแมโครย่อย สามารถทำได้โดยดับเบิลคลิกที่รายการ แมโครย่อย ทางหน้าต่างขวามือ จะปรากฏชื่อแมโครย่อยขึ้นมาในที่นี้ คือ Sub ! จากนั้นเราสามารถกำหนดคำสั่งหรือแอคชันลงไป โดยจะสิ้นสุดการทำงานของแมโครย่อยที่ข้อความ สิ้นสุดแมโครย่อย ดังรูปที่ 9.22 รูปที่ 9.22 แสดงการสร้างแมโครย่อย
สำหรับชื่อแมโครย่อยอาจตั้งซื้อให้เหมาะสมกับลักษณะงาน เช่นต้องการสร้างแมโครสำหรับ เปิดฟอร์มเพื่อเพิ่มข้อมูลพนักงาน เราอาจกำหนดชื่อแมโครย่อยเป็น AddData แล้วกำหนตโหมด ข้อมูลเป็นแบบ เพิ่ม ดังรูปที่ 9.23 รูปที่ 9.23 แสดงการสร้างแมโครย่อยเพื่อเปิดฟอร์มป้อนข้อมูล จากนั้นให้สร้างแมโครย่อย Edit Data สำหรับเปิดฟอร์มเพื่อแก้ไขข้อมูลพนักงาน โดยกำหนด โหมดข้อมูลเป็นแบบ แก้ไข ดังรูปที่ 9.24 รูปที่ 9.24 แสดงการสร้างแม่โครบ่อยเพื่อเปิดฟอร์มแก้ไขข้อมูล และสร้างแมโครย่อย Display Data สำหรับเปิดฟอร์มเพื่อแสดงข้อมูลพนักงาน โดยกำหนดโหมด ข้อมูลผลเป็นแบบ อ่านอย่างเดียว ดังรูปที่ 9.25
รูปที่ 9.25 แสดงการสร้างแมโครย่อยเพื่อเปิดฟอร์มแสดงข้อมูล จากนั้นบันทึกแมโครหลักชื่อว่า Employee เราจะมีแมโครย่อย 3 ตัว อยู่ในแมโครหลัก Employee ดังรูปที่ 9.26 รูปที่ 9.26 แสดงแมโครย่อย 3 ตัวที่อยู่ในแมโครหลัก Employee ในการนำไปใช้งานให้สร้างฟอร์มเมนูจากปุ่มคำสั่ง (Command Button) โดยปุ่ม ป้อนข้อมูล ให้กำหนดเหตุการณ์ เมื่อคลิก เป็นการเรียกแมโคร Employee AddData ดังรูปที่ 9.27
รูปที่ 9.27 แสดงการกำหนดเหตุการณ์เพื่อเรียกใช้แมโครย่อย สำหรับปุ่มคำสั่งอีก 2 ปุ่มต่อมา ให้ปรับแต่งในทำนองเดียวกันเพียงแต่เลือกชื่อแมโครที่ใช้สั่งงาน ให้ตรงกับงานของปุ่มคำสั่ง คือ ปุ่ม แก้ไขข้อมูล เลือกแมโคร Employee.EditData ปุ่ม แสดงข้อมูล เลือกแมโคร Employee.DisplayData สำหรับการสร้างแม่โครให้กับปุ่ม ออกจากโปรแกรม ให้เพิ่มแมโครย่อย Quit ในแมโคร Employee โดยใช้คำสั่ง QuitAccess ดังรูปที่ 9.28 รูปที่ 9.28 แสดงการสร้างแมโครย่อย Quit ในแมโคร Employee จากนั้นให้นำไปใช้กับเหตุการณ์ เมื่อคลิก ของปุ่ม ออกจากโปรแกรม ดังรูปที่ 9.29
รูปที่ 9.29 แสดงการกำหนดงแมโคร Employee Quit ให้กับปุ่มออกจากโปรแกรม ต่อจากนั้นให้บันทึกฟอร์ม ในชื่อ Menu แล้วลองเปิดฟอร์ม Menu ขึ้นมาจากนั้นทดสอบ การทำงานโดยกดเลือกที่ปุ่มต่าง ๆ เพื่อดูผลลัพธ์ จะเห็นว่ามีการทำงานตามแมโครย่อยที่กำหนดไว้ สาระน่ารู้ : เราสามารถสร้างปุ่มคำสั่งที่มีคุณสมบัติคล้ายกันได้ จากการคัดลอก และวาง (Copy &Paste) โดยใช้แป็นพิมพ์ [Ctrl][C] และ [Ctrly][V]