ใน Microsoft Access แมโครที่แนบมากับวัตถุส่วนติดต่อผู้ใช้ (UI) เช่น ปุ่มคําสั่ง กล่องข้อความ ฟอร์ม และรายงานเรียกว่าแมโคร UI ซึ่งจะแตกต่างจากแมโครข้อมูล ซึ่งแนบอยู่กับตาราง คุณใช้แมโคร (UI) เพื่อทําให้ชุดของแอคชัน เช่น การเปิดวัตถุอื่น การใช้ตัวกรอง การเริ่มต้นการส่งออก และงานอื่นๆ อีกมากมายเป็นไปโดยอัตโนมัติ บทความนี้จะแนะนําคุณเกี่ยวกับตัวสร้างแมโครที่ออกแบบใหม่ และแสดงงานพื้นฐานที่เกี่ยวข้องกับการสร้างแมโคร UI
หมายเหตุ: บทความนี้ใช้ไม่ได้กับ Access Web App
ในบทความนี้
ภาพรวม
แมโครสามารถอยู่ในวัตถุแมโคร (บางครั้งเรียกว่าแมโครแบบสแตนด์อโลน) หรือฝังตัวลงในคุณสมบัติเหตุการณ์ของฟอร์ม รายงาน หรือตัวควบคุมก็ได้ แมโครฝังตัวจะกลายเป็นส่วนหนึ่งของวัตถุหรือตัวควบคุมที่ฝังอยู่ วัตถุแมโครจะปรากฏในบานหน้าต่างนําทาง ภายใต้ แมโคร แมโครที่ฝังตัวไม่ใช่แมโคร
แมโครแต่ละตัวประกอบด้วยแอคชันของแมโครตั้งแต่หนึ่งแอคชันขึ้นไป แมโครแอคชันบางอย่างอาจไม่พร้อมใช้งาน ทั้งนี้ขึ้นอยู่กับบริบทที่คุณกําลังทํางานอยู่
ตัวสร้างแมโคร
ต่อไปนี้เป็นไฮไลต์คุณสมบัติหลักบางอย่างของตัวสร้างแมโคร
-
แค็ตตาล็อกการกระทํา แมโครแอคชันจะจัดระเบียบตามชนิดและค้นหาได้
-
IntelliSense เมื่อพิมพ์นิพจน์ IntelliSense จะแนะนําค่าที่เป็นไปได้และให้คุณเลือกค่าที่ถูกต้อง
-
แป้นพิมพ์ลัด ใช้การกดแป้นพิมพ์พร้อมกันเพื่อการเขียนแมโครที่เร็วขึ้นและง่ายขึ้น
-
โฟลว์ของโปรแกรม สร้างแมโครที่สามารถอ่านได้มากขึ้นด้วยบรรทัดข้อคิดเห็นและกลุ่มของการกระทํา
-
คําสั่งแบบมีเงื่อนไข อนุญาตสําหรับการดําเนินการตรรกะที่ซับซ้อนมากขึ้นด้วยการสนับสนุน If/Else/Else If ที่ซ้อนกัน
-
การนําแมโครมาใช้ใหม่ แค็ตตาล็อกแอคชันจะแสดงแมโครอื่นๆ ที่คุณสร้างขึ้น เพื่อให้คุณคัดลอกแมโครเหล่านั้นลงในแมโครที่คุณกําลังทํางานอยู่ได้
-
แชร์ได้ง่ายขึ้น คัดลอกแมโคร แล้ววางเป็น XML ลงในอีเมล โพสต์กลุ่มข่าวสาร บล็อก หรือเว็บไซต์ตัวอย่างโค้ด
ต่อไปนี้เป็นวิดีโอที่จะแนะนําคุณเกี่ยวกับพื้นที่หลักของตัวสร้างแมโคร
สร้างแมโครแบบสแตนด์อโลน
กระบวนงานนี้จะสร้างวัตถุแมโครแบบสแตนด์อโลนที่จะปรากฏภายใต้ แมโคร ในบานหน้าต่างนําทาง แมโครแบบสแตนด์อโลนมีประโยชน์เมื่อคุณต้องการนําแมโครกลับมาใช้ใหม่ในหลายตําแหน่งของแอปพลิเคชัน เมื่อเรียกใช้แมโครจากแมโครอื่น คุณสามารถหลีกเลี่ยงการทําซ้ําโค้ดเดียวกันในหลายตําแหน่งได้
-
บนแท็บ สร้าง ในกลุ่ม แมโครและโค้ด ให้คลิก แมโคร
Access จะเปิดตัวสร้างแมโคร -
บน แถบเครื่องมือด่วน ให้คลิก บันทึก
-
ในกล่องโต้ตอบ บันทึกเป็น ให้พิมพ์ชื่อสําหรับแมโคร แล้วคลิก ตกลง
-
ดําเนินการต่อด้วยส่วน เพิ่มแอคชันลงในแมโคร
สร้างแมโครฝังตัว
กระบวนงานนี้จะสร้างแมโครที่ฝังตัวอยู่ในคุณสมบัติเหตุการณ์ของวัตถุ แมโครดังกล่าวจะไม่ปรากฏในบานหน้าต่างนําทาง แต่สามารถเรียกได้จากเหตุการณ์เช่น On Load หรือ On Click
เนื่องจากแมโครจะกลายเป็นส่วนหนึ่งของวัตถุฟอร์มหรือรายงาน จึงขอแนะนําให้ใช้แมโครฝังตัวสําหรับการทํางานอัตโนมัติที่เฉพาะเจาะจงสําหรับฟอร์มหรือรายงานที่เฉพาะเจาะจง
-
ในบานหน้าต่างนําทาง ให้คลิกขวาที่ฟอร์มหรือรายงานที่มีแมโคร แล้วคลิก มุมมองเค้าโครง
-
ถ้าแผ่นคุณสมบัติไม่ได้แสดงอยู่แล้ว ให้กด F4 เพื่อแสดงแผ่นคุณสมบัติ
-
คลิกตัวควบคุมหรือส่วนที่มีคุณสมบัติเหตุการณ์ที่คุณต้องการฝังแมโคร คุณยังสามารถเลือกตัวควบคุมหรือส่วน (หรือทั้งฟอร์มหรือรายงาน) โดยใช้รายการดรอปดาวน์ภายใต้ ชนิดการเลือก ที่ด้านบนของแผ่นคุณสมบัติ
-
ในบานหน้าต่างงาน แผ่นคุณสมบัติ ให้คลิกแท็บ เหตุการณ์
-
คลิกในกล่องคุณสมบัติสําหรับเหตุการณ์ที่คุณต้องการทริกเกอร์แมโคร ตัวอย่างเช่น สําหรับปุ่มคําสั่ง ถ้าคุณต้องการให้แมโครทํางานเมื่อคลิกปุ่ม ให้คลิกในกล่องคุณสมบัติ เมื่อคลิก
-
ถ้ากล่องคุณสมบัติมีคําว่า [แมโครฝังตัว] แสดงว่ามีการสร้างแมโครสําหรับเหตุการณ์นี้แล้ว คุณสามารถแก้ไขแมโครได้โดยทําตามขั้นตอนที่เหลือในกระบวนงานนี้ต่อไป
-
ถ้ากล่องคุณสมบัติมีคําว่า [กระบวนงานเหตุการณ์] ซึ่งหมายความว่ากระบวนงาน Visual Basic for Applications (VBA) ได้ถูกสร้างสําหรับเหตุการณ์นี้แล้ว ก่อนที่คุณจะสามารถฝังแมโครในเหตุการณ์คุณจะต้องเอากระบวนงานออก คุณสามารถทําได้โดยการลบคําว่า [Event Procedure] แต่คุณควรตรวจสอบกระบวนงานเหตุการณ์ก่อนเพื่อให้แน่ใจว่าการเอาออกจะไม่ทําให้ฟังก์ชันการทํางานที่จําเป็นในฐานข้อมูลเสียหาย ในบางกรณี คุณสามารถสร้างฟังก์ชันการทํางานของกระบวนงาน VBA ใหม่ได้โดยใช้แมโครฝังตัว
-
คลิกปุ่ม สร้าง
-
ถ้ากล่องโต้ตอบ เลือกตัวสร้าง ปรากฏขึ้น ตรวจสอบให้แน่ใจว่าได้เลือก ตัวสร้างแมโคร แล้ว จากนั้นคลิก ตกลง
Access จะเปิดตัวสร้างแมโคร ดําเนินการต่อด้วยส่วนถัดไปเพื่อเพิ่มแอคชันลงในแมโคร
เพิ่มแอคชันลงในแมโคร
แอคชันคือคําสั่งแต่ละคําสั่งที่สร้างแมโคร และแต่ละคําสั่งจะมีชื่อตามสิ่งที่แมโครทํา ตัวอย่างเช่น FindRecord หรือ CloseDatabase
ขั้นตอนที่ 1: เรียกดูหรือค้นหาแมโครแอคชัน
ขั้นตอนแรกในการเพิ่มการกระทําจะพบการดําเนินการนั้นในรายการดรอปดาวน์ เพิ่มการดําเนินการใหม่ หรือในแค็ตตาล็อกการกระทํา
หมายเหตุ:
-
ตามค่าเริ่มต้น รายการดรอปดาวน์ เพิ่มการดําเนินการใหม่ และ แค็ตตาล็อกแอคชัน จะแสดงเฉพาะการกระทําที่จะดําเนินการในฐานข้อมูลที่ไม่น่าเชื่อถือเท่านั้น เมื่อต้องการดูการดําเนินการทั้งหมด:
-
บนแท็บ ออกแบบ ในกลุ่ม แสดง/ซ่อน ให้คลิก แสดงการกระทําทั้งหมด
-
-
ถ้าแค็ตตาล็อกการกระทําไม่แสดง บนแท็บ ออกแบบ ในกลุ่ม แสดง/ซ่อน ให้คลิก แค็ตตาล็อกการกระทํา
เมื่อต้องการค้นหาการดําเนินการ ให้ใช้วิธีการใดวิธีการหนึ่งต่อไปนี้
-
คลิกลูกศรในรายการดรอปดาวน์ เพิ่มการดําเนินการใหม่ แล้วเลื่อนลงเพื่อค้นหาการดําเนินการ องค์ประกอบโฟลว์ของโปรแกรมจะแสดงเป็นลําดับแรก จากนั้นแอคชันแมโครจะแสดงรายการตามลําดับตัวอักษร
-
เรียกดูการกระทําในบานหน้าต่าง แค็ตตาล็อกการกระทํา การดําเนินการจะจัดกลุ่มตามประเภท ขยายแต่ละประเภทเพื่อดูการดําเนินการ ถ้าคุณเลือกการดําเนินการ คําอธิบายสั้นๆ ของการดําเนินการจะปรากฏขึ้นที่ด้านล่างของแค็ตตาล็อกการดําเนินการ
-
ค้นหาการกระทําในบานหน้าต่าง แค็ตตาล็อกการกระทํา โดยการพิมพ์ในกล่อง ค้นหา ที่ด้านบนของบานหน้าต่าง ขณะที่คุณพิมพ์ รายการของแอคชันจะถูกกรองเพื่อแสดงแมโครทั้งหมดที่มีข้อความนั้น Access จะค้นหาทั้งชื่อแมโครและคําอธิบายสําหรับข้อความที่คุณใส่
ขั้นตอนที่ 2: เพิ่มแอคชันลงในแมโคร
เมื่อคุณพบแมโครแอคชันที่คุณต้องการแล้ว ให้เพิ่มลงในแมโครโดยใช้วิธีใดวิธีหนึ่งต่อไปนี้
-
เลือกการกระทําในรายการ เพิ่มการกระทําใหม่ หรือเพียงเริ่มพิมพ์ชื่อการกระทําในกล่อง Access จะเพิ่มการกระทําณ จุดที่รายการ เพิ่มการกระทําใหม่ แสดงอยู่
-
ลากการกระทําจากแค็ตตาล็อกแอคชันไปยังบานหน้าต่างแมโคร แถบการแทรกจะปรากฏขึ้นเพื่อแสดงให้คุณเห็นตําแหน่งที่จะแทรกการดําเนินการเมื่อคุณปล่อยปุ่มเมาส์
-
ดับเบิลคลิกที่แอคชันในแค็ตตาล็อกแอคชัน
-
ถ้ามีการเลือกแอคชันในบานหน้าต่างแมโคร Access จะเพิ่มการกระทําใหม่ไว้ใต้แอคชันที่เลือก
-
ถ้ามีการเลือกบล็อก จัดกลุ่ม, If, Else หรือ Submacro ในบานหน้าต่างแมโคร Access จะเพิ่มแอคชันใหม่ลงในบล็อกนั้น
-
ถ้าไม่มีการดําเนินการหรือบล็อกใดถูกเลือกในบานหน้าต่างแมโคร Access จะเพิ่มแอคชันใหม่ลงในส่วนท้ายของแมโคร
หมายเหตุ:
-
ถ้าคุณสร้างแมโครไว้แล้วอย่างน้อยหนึ่งแมโคร แมโครเหล่านั้นจะแสดงรายการอยู่ภายใต้โหนด ในฐานข้อมูลนี้ ในแค็ตตาล็อกแอคชัน
-
การลากแมโครแบบสแตนด์อโลน (แมโครที่แสดงอยู่ภายใต้ แมโคร) ไปไว้ในบานหน้าต่างแมโครจะสร้างแอคชัน RunMacro ที่จะเรียกใช้แมโครที่คุณลากเข้ามา จากนั้นคุณสามารถใช้รายการดรอปดาวน์เพื่อเรียกแมโครย่อยได้ ถ้ามี
-
ถ้าคุณเพียงต้องการคัดลอกแอคชันจากแมโครแบบสแตนด์อโลนลงในแมโครปัจจุบัน (แทนที่จะสร้างแอคชัน RunMacro) ให้คลิกขวาที่แอคชันในแค็ตตาล็อกแอคชัน แล้วคลิก เพิ่มสําเนาของแมโคร
-
การลากแมโครที่ฝังตัว (แมโครที่แสดงอยู่ภายใต้วัตถุฟอร์มหรือรายงาน) ลงในบานหน้าต่างแมโครจะคัดลอกแอคชันจากแมโครนั้นลงในแมโครปัจจุบัน
-
-
คุณยังสามารถสร้างการกระทําได้โดยการลากวัตถุฐานข้อมูลจากบานหน้าต่างนําทางไปยังบานหน้าต่างแมโคร ถ้าคุณลากตาราง คิวรี ฟอร์ม รายงาน หรือมอดูลไปยังบานหน้าต่างแมโคร Access จะเพิ่มแอคชันที่เปิดตาราง คิวรี ฟอร์ม หรือรายงาน ถ้าคุณลากแมโครอื่นไปในบานหน้าต่างแมโคร Access จะเพิ่มแอคชันที่เรียกใช้แมโคร
-
-
ขั้นตอนที่ 3: เติมอาร์กิวเมนต์
แอคชันของแมโครส่วนใหญ่ต้องการอย่างน้อยหนึ่งอาร์กิวเมนต์ คุณสามารถดูคําอธิบายของแต่ละอาร์กิวเมนต์ได้โดยการเลือกแอคชัน แล้วย้ายตัวชี้ไปไว้เหนืออาร์กิวเมนต์ สําหรับอาร์กิวเมนต์หลายรายการ คุณสามารถเลือกค่าจากรายการดรอปดาวน์ได้ ถ้าอาร์กิวเมนต์ต้องการให้คุณพิมพ์นิพจน์ IntelliSense จะช่วยให้คุณใส่นิพจน์โดยการแนะนําค่าที่เป็นไปได้ขณะที่คุณพิมพ์ ดังที่แสดงในภาพประกอบต่อไปนี้:
เมื่อคุณเห็นค่าที่คุณต้องการใช้ ให้เพิ่มค่านั้นลงในนิพจน์ของคุณด้วยการดับเบิลคลิกที่ค่านั้นหรือใช้แป้นลูกศรเพื่อเน้น แล้วกดแป้น TAB หรือ ENTER
สําหรับข้อมูลเพิ่มเติมเกี่ยวกับการสร้างนิพจน์ ให้ดูบทความ บทนําสู่นิพจน์
เกี่ยวกับการใช้ IntelliSense กับคุณสมบัติในฐานข้อมูลเว็บ
เมื่อคุณกําลังสร้างแมโคร UI ที่ฝังตัวบนฟอร์มที่เข้ากันได้กับเว็บ IntelliSense จะช่วยให้คุณสามารถเพิ่มคุณสมบัติฟอร์มใดๆ ลงในนิพจน์ได้ อย่างไรก็ตาม ในฐานข้อมูลบนเว็บ สามารถเข้าถึงได้เฉพาะชุดย่อยของคุณสมบัติฟอร์มเท่านั้นโดยใช้แมโคร UI ตัวอย่างเช่น เมื่อกําหนดตัวควบคุมที่ชื่อว่า Control1 บนฟอร์มที่ชื่อ Form1 IntelliSense จะให้คุณเพิ่ม [Forms]! [ฟอร์ม 1]! [Control1] [ControlSource] ไปยังนิพจน์ในแมโคร UI อย่างไรก็ตาม ถ้าคุณประกาศฐานข้อมูลไปยัง Access Services แมโครที่มีนิพจน์นั้นจะสร้างข้อผิดพลาดเมื่อเรียกใช้บนเซิร์ฟเวอร์
ตารางต่อไปนี้แสดงคุณสมบัติที่คุณสามารถใช้ในแมโคร UI ในฐานข้อมูลเว็บ:
วัตถุหรือตัวควบคุม |
คุณสมบัติที่คุณสามารถใช้ได้ |
---|---|
ฟอร์ม |
Caption, Dirty, AllowAdditions, AllowDeletions, AllowEdits |
ตัวควบคุมแท็บ |
ปรากฏ |
ป้ายผนึก |
คําอธิบายภาพ, มองเห็นได้, สีหน้ากระดาษ, สีพื้นหลัง |
สิ่งที่แนบมา |
มองเห็นได้ เปิดใช้งาน |
ปุ่มคําสั่ง |
คําอธิบายภาพ, มองเห็นได้, เปิดใช้งาน, สีหน้า |
Tex tBox |
Enabled, Visible, Locked, Fore Color, Back Color, value |
กล่องกาเครื่องหมาย |
เปิดใช้งาน มองเห็นได้ ถูกล็อก ค่า |
รูป |
มองเห็นได้, สีพื้นหลัง |
กล่องคําสั่งผสม |
เปิดใช้งาน มองเห็นได้ ถูกล็อก ค่า |
กล่องรายการ |
เปิดใช้งาน มองเห็นได้ ถูกล็อก ค่า |
เบราว์เซอร์ |
ปรากฏ |
ฟอร์มย่อย |
เปิดใช้งาน, มองเห็นได้ล็อกอยู่ |
ตัวควบคุมการนําทาง |
เปิดใช้งาน มองเห็นได้ |
ย้ายการดําเนินการ
การดําเนินการจะดําเนินการตามลําดับ จากบนลงล่างของแมโคร เมื่อต้องการย้ายแอคชันขึ้นหรือลงในแมโคร ให้ใช้วิธีใดวิธีหนึ่งต่อไปนี้
-
ลากการกระทําขึ้นหรือลงไปยังตําแหน่งที่คุณต้องการ
-
เลือกการดําเนินการ แล้วกด CTRL + ลูกศรขึ้น หรือ CTRL + ลูกศรลง
-
เลือกการดําเนินการ แล้วคลิกลูกศร ย้ายขึ้น หรือ ย้ายลง ทางด้านขวาของบานหน้าต่างแมโคร
ลบการดําเนินการ
เมื่อต้องการลบแมโครแอคชัน:
-
เลือกการกระทํา แล้วกดแป้น DELETE อีกวิธีหนึ่งคือ คุณสามารถคลิกปุ่ม ลบ (X) ทางด้านขวาของบานหน้าต่างแมโคร
หมายเหตุ:
-
ถ้าคุณลบบล็อกการดําเนินการ เช่น บล็อก If หรือบล็อก กลุ่ม การดําเนินการทั้งหมดในบล็อกจะถูกลบด้วย
-
คําสั่ง ย้ายขึ้น, ย้ายลง และ ลบ ยังพร้อมใช้งานบนเมนูทางลัดที่ปรากฏขึ้นเมื่อคุณคลิกขวาที่แมโครแอคชัน
-
ควบคุมลําดับโปรแกรมด้วย If, Else If และ Else
เมื่อต้องการดําเนินการแมโครแอคชันเฉพาะเมื่อเงื่อนไขบางอย่างเป็นจริง ให้คุณใช้บล็อก If ซึ่งจะแทนที่คอลัมน์ เงื่อนไข ที่ใช้ใน Access เวอร์ชันก่อนหน้า คุณสามารถขยายบล็อก If ด้วยการบล็อก Else If และ Else ซึ่งคล้ายกับภาษาการเขียนโปรแกรมตามลําดับอื่นๆ เช่น VBA
ภาพประกอบต่อไปนี้แสดงบล็อก If อย่างง่าย รวมถึงบล็อก Else If and Else :
บล็อก If จะดําเนินการถ้าฟิลด์ ExpirationDate น้อยกว่าวันที่ปัจจุบัน
บล็อก Else If จะดําเนินการถ้าฟิลด์ ExpirationDate เท่ากับวันที่ปัจจุบัน
บล็อก Else จะทํางานหากไม่มีบล็อกใดก่อนหน้าทํางาน
บล็อก If จะสิ้นสุดที่นี่
เพิ่มบล็อก If ลงในแมโคร
-
เลือก ถ้า จากรายการดรอปดาวน์ เพิ่มการดําเนินการใหม่ หรือลากจากบานหน้าต่าง แค็ตตาล็อกการกระทํา ไปยังบานหน้าต่างแมโคร
-
ในกล่องด้านบนสุดของบล็อก If ให้พิมพ์นิพจน์ที่กําหนดว่าจะดําเนินการบล็อกเมื่อใด นิพจน์ต้องเป็นบูลีน (นั่นคือ นิพจน์ที่ประเมินเป็น ใช่ หรือ ไม่ใช่)
-
เพิ่มการกระทําลงในบล็อก If ด้วยการเลือกแอคชันเหล่านั้นจากรายการดรอปดาวน์ เพิ่มการกระทําใหม่ ที่ปรากฏขึ้นภายในบล็อก หรือโดยการลากจากบานหน้าต่าง แค็ตตาล็อกการกระทํา ไปยังบล็อก If
เพิ่มบล็อก Else หรือ Else If ลงในบล็อก If
-
เลือก บล็อก If จากนั้นที่มุมล่างขวาของบล็อก ให้คลิก Add Else หรือ Add Else If
-
ถ้าคุณกําลังเพิ่มบล็อก Else If ให้พิมพ์นิพจน์ที่กําหนดว่าจะดําเนินการบล็อกเมื่อใด นิพจน์ต้องเป็นบูลีน (ซึ่งก็คือนิพจน์ที่ประเมินเป็น True หรือ False)
-
เพิ่มการกระทําลงในบล็อก Else If หรือ Else โดยเลือกจากรายการดรอปดาวน์ เพิ่มการดําเนินการใหม่ ที่ปรากฏขึ้นภายในบล็อก หรือลากจากบานหน้าต่าง แค็ตตาล็อกการกระทํา ไปยังบล็อก
หมายเหตุ:
-
คําสั่งในการเพิ่ม บล็อก If, Else If และ Else จะพร้อมใช้งานบนเมนูทางลัดที่ปรากฏขึ้นเมื่อคุณคลิกขวาที่แมโครแอคชัน
-
หาก บล็อกสามารถซ้อนกันได้สูงถึง 10 ระดับ
-
สร้างแมโครย่อย
แต่ละแมโครสามารถมีแมโครย่อยหลายรายการได้ แมโครย่อยได้รับการออกแบบให้เรียกตามชื่อจากแมโครแอคชัน RunMacro หรือ OnError
คุณเพิ่มบล็อก แมโครย่อย ลงในแมโครด้วยวิธีเดียวกับที่คุณเรียกใช้แมโครแอคชัน ตามที่อธิบายไว้ในส่วน เพิ่มแอคชันลงในแมโคร เมื่อคุณเพิ่มบล็อก แมโครย่อย คุณสามารถลากแมโครแอคชันลงในบล็อกนั้น หรือเลือกการกระทําจากรายการ เพิ่มการดําเนินการใหม่ ที่ปรากฏขึ้นภายในบล็อก
หมายเหตุ:
-
คุณยังสามารถสร้างบล็อกแมโครย่อยได้โดยการเลือกการดําเนินการอย่างน้อยหนึ่งรายการ คลิกขวาที่การดําเนินการแล้วเลือก สร้างบล็อกแมโครย่อย
-
แมโครย่อยต้องเป็นบล็อกสุดท้ายในแมโครเสมอ คุณไม่สามารถเพิ่มการดําเนินการใดๆ (ยกเว้นแมโครย่อยเพิ่มเติม) ที่ด้านล่างของแมโครย่อยได้ ถ้าคุณเรียกใช้แมโครที่มีเฉพาะแมโครย่อยเท่านั้น โดยไม่มีการตั้งชื่อแมโครย่อยที่คุณต้องการ เฉพาะแมโครย่อยแรกเท่านั้นที่จะทํางาน
-
เมื่อต้องการเรียกใช้แมโครย่อย (ตัวอย่างเช่น ในคุณสมบัติเหตุการณ์ หรือใช้การดําเนินการ RunMacro หรือแอคชัน OnError ) ให้ใช้ไวยากรณ์ต่อไปนี้:
macroname.submacroname
จัดกลุ่มการกระทําที่เกี่ยวข้องกันไว้ด้วยกัน
คุณสามารถปรับปรุงความยากง่ายในการอ่านของแมโครได้โดยการจัดกลุ่มแอคชันเข้าด้วยกันและตั้งชื่อที่สื่อความหมายให้กับกลุ่ม ตัวอย่างเช่น คุณสามารถจัดกลุ่มการดําเนินการที่เปิดและกรองฟอร์มลงในกลุ่มที่ชื่อ "ฟอร์มเปิดและกรอง" ซึ่งทําให้ง่ายต่อการดูว่าการดําเนินการใดเกี่ยวข้องกับกันและกัน บล็อก กลุ่ม ไม่มีผลต่อวิธีดําเนินการกระทํา และไม่สามารถเรียกหรือรันกลุ่มทีละกลุ่มได้ การใช้งานหลักๆ คือการติดป้ายชื่อกลุ่มการกระทําเพื่อช่วยให้คุณเข้าใจแมโครขณะที่คุณอ่าน นอกจากนี้ ในขณะที่กําลังแก้ไขแมโครขนาดใหญ่ คุณสามารถยุบแต่ละบล็อกกลุ่มลงมาที่บรรทัดเดียว ลดจํานวนการเลื่อนที่คุณต้องทํา
ถ้าแอคชันที่คุณต้องการจัดกลุ่มอยู่ในแมโครอยู่แล้ว ให้ใช้กระบวนงานนี้เพื่อเพิ่มแอคชันเหล่านั้นลงในบล็อก กลุ่ม ดังนี้
-
เลือกการกระทําที่คุณต้องการจัดกลุ่ม
-
คลิกขวาที่การกระทําที่เลือก แล้วคลิก ทําให้เป็นบล็อกกลุ่ม
-
ในกล่องที่ด้านบนของบล็อก กลุ่ม ให้พิมพ์ชื่อสําหรับกลุ่ม
ถ้ายังไม่มีการดําเนินการอยู่ ให้ทําดังนี้
-
ลากบล็อก กลุ่ม จากแค็ตตาล็อกแอคชันไปยังบานหน้าต่างแมโคร
-
ในกล่องที่ด้านบนของบล็อก กลุ่ม ให้พิมพ์ชื่อสําหรับกลุ่ม
-
ลากแมโครแอคชันจากแค็ตตาล็อกแอคชันลงในบล็อก กลุ่ม หรือเลือกการกระทําจากรายการ เพิ่มการดําเนินการใหม่ ที่ปรากฏขึ้นภายในบล็อก
บล็อกกลุ่มสามารถมีบล็อกกลุ่มอื่นๆ และสามารถซ้อนกันได้สูงสุด 9 ระดับ
ขยายและยุบแมโครแอคชันหรือบล็อก
เมื่อคุณสร้างแมโครใหม่ ตัวสร้างแมโครจะแสดงแมโครแอคชันที่มีอาร์กิวเมนต์ทั้งหมดปรากฏอยู่ คุณอาจต้องการยุบแมโครบางแอคชันหรือทั้งหมด (และบล็อกการดําเนินการ) ขณะที่คุณกําลังแก้ไขแมโคร ทั้งนี้ขึ้นอยู่กับขนาดของแมโคร ซึ่งทําให้ง่ายต่อการดูภาพรวมเกี่ยวกับโครงสร้างของแมโครของคุณ คุณสามารถขยายการดําเนินการบางส่วนหรือทั้งหมดได้ตามต้องการเพื่อแก้ไข
ขยายหรือยุบแมโครแอคชันหรือบล็อกเดียว
-
คลิกเครื่องหมายบวก (+) หรือเครื่องหมายลบ (-) ทางด้านซ้ายของแมโครหรือชื่อบล็อก อีกวิธีหนึ่งคือ กดแป้นลูกศรขึ้นและลูกศรลงเพื่อเลือกการกระทําหรือบล็อก แล้วกดแป้นลูกศรซ้ายหรือลูกศรขวาเพื่อยุบหรือขยาย
ขยายหรือยุบแมโครแอคชันทั้งหมด (แต่ไม่บล็อก)
-
บนแท็บ ออกแบบ ในกลุ่ม ยุบ/ขยาย ให้คลิก ขยายการดําเนินการ หรือ ยุบการดําเนินการ
ขยายหรือยุบแมโครแอคชันและบล็อกทั้งหมด
-
บนแท็บ ออกแบบ ในกลุ่ม ยุบ/ขยาย ให้คลิก ขยายทั้งหมด หรือ ยุบทั้งหมด
เคล็ดลับ: คุณสามารถ "Peek" ภายในแอคชันที่ยุบอยู่ได้โดยการย้ายตัวชี้ไปไว้เหนือการกระทํา Access จะแสดงอาร์กิวเมนต์แอคชันในคําแนะนําเครื่องมือ
การคัดลอกและวางแมโครแอคชัน
ถ้าคุณต้องการทําซ้ําการกระทําที่คุณได้เพิ่มลงในแมโคร คุณสามารถคัดลอกและวางการกระทําที่มีอยู่ได้มากเหมือนกับที่คุณทํากับย่อหน้าข้อความในตัวประมวลผลคํา เมื่อคุณวางการกระทํา การกระทําเหล่านั้นจะถูกแทรกไว้ใต้การกระทําที่เลือกในปัจจุบัน ถ้าบล็อกถูกเลือก การกระทําจะถูกวางภายในบล็อก
เคล็ดลับ: เมื่อต้องการทําซ้ําการกระทําที่เลือกอย่างรวดเร็ว ให้กดแป้น CTRL ค้างไว้แล้วลากการกระทําไปยังตําแหน่งในแมโครที่คุณต้องการคัดลอก
แชร์แมโครกับผู้อื่น
เมื่อคุณคัดลอกแมโครแอคชันไปยังคลิปบอร์ด แอคชันเหล่านั้นสามารถวางเป็น Extensible Markup Language (XML) ลงในแอปพลิเคชันใดๆ ที่ยอมรับข้อความได้ ซึ่งช่วยให้คุณสามารถส่งแมโครไปยังผู้ร่วมงานผ่านทางข้อความอีเมล หรือโพสต์แมโครบนฟอรั่มการสนทนา บล็อก หรือเว็บไซต์อื่นๆ ได้ ผู้รับสามารถคัดลอก XML และวางลงในตัวสร้างแมโคร Access ของพวกเขาได้ แมโครจะถูกสร้างขึ้นใหม่เหมือนกับที่คุณเขียน
การเรียกใช้แมโคร
คุณสามารถเรียกใช้แมโครได้โดยใช้วิธีใดวิธีหนึ่งต่อไปนี้
-
ดับเบิลคลิกที่แมโครในบานหน้าต่างนําทาง
-
เรียกใช้แมโครโดยใช้แมโครแอคชัน RunMacro หรือ OnError
-
ใส่ชื่อแมโครในคุณสมบัติ Event ของวัตถุ แมโครจะทํางานเมื่อเหตุการณ์นั้นถูกทริกเกอร์
แก้จุดบกพร่องแมโคร
ถ้าคุณมีปัญหาในการเรียกใช้แมโคร มีเครื่องมือสองสามอย่างที่คุณสามารถใช้เพื่อหาสาเหตุของปัญหา
เพิ่มแอคชันจัดการข้อผิดพลาดให้กับแมโคร
เราขอแนะนําให้เพิ่มการดําเนินการจัดการข้อผิดพลาดให้กับแต่ละแมโครขณะที่คุณเขียน และปล่อยให้แมโครอยู่ในแมโครอย่างถาวร เมื่อคุณใช้วิธีนี้ Access จะแสดงคําอธิบายของข้อผิดพลาดที่เกิดขึ้น คําอธิบายข้อผิดพลาดช่วยให้คุณเข้าใจข้อผิดพลาดเพื่อให้คุณสามารถแก้ไขปัญหาได้เร็วขึ้น
ใช้กระบวนงานต่อไปนี้เพื่อเพิ่มแมโครย่อยการจัดการข้อผิดพลาดลงในแมโคร:
-
เปิดแมโครในมุมมองออกแบบ
-
ที่ด้านล่างของแมโคร ให้เลือก แมโครย่อย จากรายการดรอปดาวน์ เพิ่มการดําเนินการใหม่
-
ในกล่องทางด้านขวาของคําว่า แมโครย่อย ให้พิมพ์ชื่อสําหรับแมโครย่อย เช่น ErrorHandler
-
จากรายการดรอปดาวน์ เพิ่มการดําเนินการใหม่ ที่ปรากฏขึ้นภายในบล็อกแมโครย่อย ให้เลือกแมโครแอคชัน MessageBox
-
ในกล่อง ข้อความ ให้พิมพ์ข้อความต่อไปนี้ = =[MacroError][ คําอธิบาย]
-
ที่ด้านล่างของแมโคร ให้เลือก OnError จากรายการดรอปดาวน์ เพิ่มการดําเนินการใหม่
-
ตั้งค่าอาร์กิวเมนต์ ไปที่ เป็น ชื่อแมโคร
-
ในกล่อง ชื่อแมโคร ให้พิมพ์ชื่อของแมโครย่อยการจัดการข้อผิดพลาดของคุณ (ในตัวอย่างนี้คือ ErrorHandler)
-
ลากแมโครแอคชัน OnError ไปที่ด้านบนของแมโคร
ภาพประกอบต่อไปนี้แสดงแมโครที่มีแอคชัน OnError และแมโครย่อยที่ชื่อ ErrorHandler
แมโครแอคชัน OnError จะถูกวางไว้ที่ด้านบนของแมโคร และเรียกใช้แมโครย่อย ErrorHandler ในกรณีที่มีข้อผิดพลาด
แมโครย่อย ErrorHandler จะทํางานก็ต่อเมื่อถูกเรียกใช้โดยการดําเนินการ OnError และแสดงกล่องข้อความที่อธิบายข้อผิดพลาด
ใช้คําสั่ง ขั้นตอนเดียว
ขั้นตอนเดียวคือโหมดการแก้จุดบกพร่องแมโครที่คุณสามารถใช้เพื่อดําเนินการแมโครทีละรายการ หลังจากดําเนินการแต่ละอย่างแล้ว กล่องโต้ตอบจะปรากฏขึ้นเพื่อแสดงข้อมูลเกี่ยวกับการดําเนินการ และรหัสข้อผิดพลาดใดๆ ที่เกิดขึ้น อย่างไรก็ตาม เนื่องจากไม่มีคําอธิบายของข้อผิดพลาดในกล่องโต้ตอบ Macro Single Step เราขอแนะนําให้ใช้วิธีการจัดการข้อผิดพลาดของแมโครย่อยที่อธิบายไว้ในส่วนก่อนหน้า
เมื่อต้องการเริ่มโหมดขั้นตอนเดียว:
-
เปิดแมโครในมุมมองออกแบบ
-
บนแท็บ ออกแบบ ในกลุ่ม เครื่องมือ ให้คลิก ขั้นตอนเดียว
-
บันทึกและปิดแมโคร
ในครั้งถัดไปที่คุณเรียกใช้แมโคร กล่องโต้ตอบ แมโครทีละขั้น จะปรากฏขึ้น กล่องโต้ตอบจะแสดงข้อมูลเกี่ยวกับแต่ละการกระทําดังต่อไปนี้
-
ชื่อแมโคร
-
เงื่อนไข (สําหรับบล็อก If)
-
ชื่อการกระทํา
-
อาร์กิวเมนต์
-
หมายเลขข้อผิดพลาด (หมายเลขข้อผิดพลาด 0 หมายถึงไม่มีข้อผิดพลาดเกิดขึ้น)
เมื่อคุณเลื่อนผ่านการดําเนินการต่างๆ ให้คลิกปุ่มใดปุ่มหนึ่งในสามปุ่มในกล่องโต้ตอบ ดังนี้
-
เมื่อต้องการดูข้อมูลเกี่ยวกับแอคชันถัดไปในแมโคร ให้กด Step
-
เมื่อต้องการหยุดแมโครที่กําลังทํางานอยู่ในปัจจุบัน ให้คลิก หยุดแมโครทั้งหมด โหมดทีละขั้นจะยังคงมีผลในครั้งถัดไปที่คุณเรียกใช้แมโคร
-
เมื่อต้องการออกจากโหมด Single Step และเรียกใช้แมโครต่อไป ให้คลิก ดําเนินการต่อ
หมายเหตุ:
-
ถ้าคุณกด Step หลังจากแอคชันสุดท้ายในแมโคร โหมด Single Step จะยังคงมีผลในครั้งถัดไปที่คุณเรียกใช้แมโคร
-
เมื่อต้องการเข้าสู่โหมดทีละขั้นในขณะที่แมโครกําลังทํางาน ให้กด CTRL+BREAK
-
เมื่อต้องการเข้าสู่โหมดทีละขั้นที่จุดใดจุดหนึ่งในแมโคร ให้เพิ่มแมโครแอคชัน SingleStep ที่จุดนั้น
-
โหมดขั้นตอนเดียวไม่พร้อมใช้งานในฐานข้อมูลเว็บ
-
แปลงแมโครเป็นโค้ด VBA
แมโครมีชุดย่อยของคําสั่งที่พร้อมใช้งานในภาษาการเขียนโปรแกรม Visual Basic for Applications (VBA) ถ้าคุณตัดสินใจว่าคุณต้องการฟังก์ชันการทํางานมากกว่าที่แมโครมีให้ คุณสามารถแปลงวัตถุแมโครแบบสแตนด์อโลนเป็นโค้ด VBA ได้อย่างง่ายดาย แล้วใช้ชุดฟีเจอร์ที่ขยายซึ่ง VBA มีให้ อย่างไรก็ตาม โปรดทราบว่า โค้ด VBA จะไม่ทํางานในเบราว์เซอร์ โค้ด VBA ใดๆ ที่คุณเพิ่มลงในฐานข้อมูลบนเว็บจะทํางานเมื่อฐานข้อมูลเปิดอยู่ใน Access เท่านั้น
หมายเหตุ: คุณไม่สามารถแปลงแมโครฝังตัวเป็นโค้ด VBA ได้
เมื่อต้องการแปลงแมโครเป็นโค้ด VBA:
-
ในบานหน้าต่างนําทาง ให้คลิกขวาที่วัตถุแมโคร แล้วคลิก มุมมองออกแบบ
-
บนแท็บ ออกแบบ ในกลุ่ม เครื่องมือ ให้คลิก แปลงแมโครเป็น Visual Basic
-
ในกล่องโต้ตอบ แปลงแมโคร ให้ระบุว่าคุณต้องการให้โค้ดการจัดการข้อผิดพลาดและข้อคิดเห็นเพิ่มลงในมอดูล VBA หรือไม่ แล้วคลิก แปลง
Access จะยืนยันว่าแมโครถูกแปลงและเปิด Visual Basic Editor ดับเบิลคลิกที่แมโครที่แปลงในบานหน้าต่าง โครงการ เพื่อดูและแก้ไขมอดูล