เลือกหัวข้อใดๆ ด้านล่างเพื่อเรียนรู้เกี่ยวกับ พนักงาน ใน Northwind Developer Edition
พนักงานมีฟอร์มแยกหนึ่งฟอร์มซึ่งทํางานเป็นฟอร์มรายการและฟอร์มรายละเอียด
ใช้พนักงานเพื่อเพิ่มพนักงานใหม่และอัปเดตข้อมูลเกี่ยวกับพนักงานที่มีอยู่
เลือกแท็บ พนักงาน บน Ribbon เพื่อแสดงพนักงานในแบบฟอร์ม รายการพนักงาน frmEmployeeList ซึ่งเป็นฟอร์มแยกที่มีฟีเจอร์ต่อไปนี้:
-
ส่วนบนของแบบฟอร์มคือมุมมองเดียวของพนักงานหนึ่งคน
-
ส่วนล่างของแบบฟอร์มคือมุมมองแผ่นข้อมูลของพนักงานทั้งหมด
-
การเลือกพนักงานในส่วนใดส่วนหนึ่งจะเป็นการกําหนดโฟกัสที่พนักงานในส่วนอื่นของแบบฟอร์มแยกด้วย
-
คุณสามารถเพิ่ม แก้ไข หรือลบพนักงานในส่วนใดส่วนหนึ่งของฟอร์มแยกได้
-
การใช้ฟอร์มแยกกับส่วนมุมมองแผ่นข้อมูลจะถือว่าแหล่งระเบียนของฟอร์มมีหลายระเบียน
ผลกระทบต่อประสิทธิภาพการทํางานที่เป็นไปได้ของฟอร์มแยก
นักพัฒนาส่วนใหญ่ ไม่ต้องการ โหลดตารางหรือคิวรีที่ไม่มีการกรองเป็นแหล่งระเบียนสําหรับฟอร์ม การกรองแบบฟอร์มไปยังเรกคอร์ดเดียวจะลดจํานวนข้อมูลที่จะโอนย้ายจากตารางไปยังแบบฟอร์ม ด้วยตาราง Access ภายใน เครื่อง ความแตกต่างระหว่างการโหลดแหล่งระเบียนที่ถูกกรองและแหล่งระเบียนขนาดเล็กที่ไม่มีการกรองอาจแทบจะสังเกตไม่ได้ อย่างไรก็ตาม ประสิทธิภาพการทํางานนี้จะหายไป เมื่อตาราง Access ถูกแทนที่ด้วยฐานข้อมูลบนเซิร์ฟเวอร์ระยะไกล เช่น SQL Server
ตารางพนักงานใน Northwind ไม่ควรมีขนาดใหญ่มาก นักจึงเป็นตัวเลือกสําหรับแหล่งระเบียนที่ไม่มีการกรอง อย่างไรก็ตาม ฟอร์มที่ผูกกับตารางอื่นๆ เช่น รายละเอียดการสั่งซื้อ ซึ่งอาจเพิ่มขึ้นเป็นระเบียนหลายพันระเบียน ไม่ใช่ตัวเลือกสําหรับแหล่งข้อมูลระเบียนที่ไม่มีการกรอง
การแก้ไขพนักงาน
เมื่อเพิ่มหรือแก้ไขระเบียนในฟอร์มแยก ผู้ใช้สามารถใส่ค่าในมุมมองฟอร์มหรือมุมมองแผ่นข้อมูลได้ บางเขตข้อมูลจําเป็นต้องระบุ บางเขตข้อมูลสามารถเลือกได้ ฟอร์มจะตรวจสอบการมีอยู่ของค่าในเขตข้อมูลที่จําเป็น ดู การตรวจสอบความถูกต้องของเขตข้อมูลที่จําเป็น ด้านล่าง
ตารางการค้นหา รายการค่า และตัวควบคุมดรอปดาวน์
-
รายการดรอปดาวน์ ชื่อเรื่อง จะจํากัดรายการไปยังรายการชื่อเรื่องที่เลือกไว้ล่วงหน้า ชื่อเรื่องจะอยู่ในตารางการค้นหาที่ชื่อว่า ชื่อเรื่อง
-
บางตัวเลือกที่คาดไว้ถูกจัดเก็บไว้ในตารางการค้นหาแล้ว แต่ผู้ใช้สามารถเพิ่มชื่อเรื่องใหม่ลงในตารางการค้นหา โดยใช้ลักษณะการทํางานเริ่มต้นของ Access สําหรับกล่องคําสั่งผสม หรือตัวควบคุมดรอปดาวน์
-
คุณสมบัติ จํากัดเฉพาะรายการ ของกล่องคําสั่งผสม ชื่อเรื่อง ถูกตั้งค่าเป็น ใช่ และฟอร์มแก้ไขสําหรับชื่อเรื่องจะถูกระบุในคุณสมบัติ ฟอร์มแก้ไขข้อมูลในรายการ การเลือกรายการดรอปดาวน์บนฟอร์มจะแสดงไอคอนแก้ไขที่ขอบด้านล่าง
-
การคลิกที่ไอคอนการแก้ไขจะเปิดฟอร์มแก้ไขชื่อเรื่อง frmEmployeeTitles ซึ่งคุณสามารถเปลี่ยนหรือเพิ่มลงในรายการชื่อเรื่องที่ได้รับการอนุมัติได้
หมาย เหตุ:ในสภาพแวดล้อมการผลิตส่วนใหญ่ การแก้ไขหรือการเพิ่มชื่อเรื่องจะจํากัดเฉพาะผู้ใช้ที่มีสิทธิ์ขั้นสูงเท่านั้น
เขตข้อมูลการค้นหา Self-Referential
ฟังก์ชันพนักงานแสดงแนวคิดของฟิลด์ รหัส Self-Referential ตารางจะมีฟิลด์ SupervisorID พร้อมด้วย รหัสพนักงานสําหรับพนักงานคนอื่นๆ เมื่อต้องการกําหนดผู้ควบคุมงาน จะมีการป้อน รหัสพนักงาน สําหรับพนักงานอื่นในฟิลด์นี้ Access บังคับให้มี Referential Integrity กับความสัมพันธ์นี้
SupervisorID ถูกนําไปใช้ในแบบฟอร์มพนักงานเป็นดรอปดาวน์หรือกล่องคําสั่งผสม แหล่งข้อมูลแถวคือชุดระเบียนที่กรองแล้วจากตารางพนักงาน เนื่องจากเป็นการอ้างอิงถึงตนเอง คิวรีต้องแยก รหัสพนักงานของพนักงานที่เลือกออก ตัวอย่างเช่น แหล่งข้อมูลแถวสําหรับ SupervisorID สําหรับ Employee Karen Finster จะไม่มี EmployeeID ของกะเหรี่ยง เธอเป็นหัวหน้าของเธอเองไม่ได้
เขตข้อมูลและตัวควบคุมสิ่งที่แนบมา
รูปภาพพนักงานจะถูกเก็บไว้ในเขตข้อมูลสิ่งที่แนบมาในตาราง คุณเพิ่มรูปภาพใหม่ หรือเปลี่ยนรูปภาพที่มีอยู่ โดยใช้ลักษณะการทํางานเริ่มต้นของ Access สําหรับเขตข้อมูลสิ่งที่แนบมา
หมาย เหตุ: เรามีเขตข้อมูลสิ่งที่แนบมาในตาราง พนักงาน เพื่อแสดงฟีเจอร์ใน Access รูปภาพที่ฝังตัวจะเพิ่มขนาดของ accdb ดังนั้นจึงไม่ถือว่าเป็นแนวทางปฏิบัติที่ดีที่สุด ประเมินสภาพแวดล้อมของคุณอย่างระมัดระวังก่อนที่จะนําไปใช้ในแอปพลิเคชันการผลิต ทางเลือกที่ต้องการคือโฟลเดอร์เครือข่ายที่จัดเก็บรูปภาพทั้งหมด และลิงก์ในเขตข้อมูลข้อความในตารางที่มีเส้นทางไปยังรูปภาพ แทนที่จะเป็น เขตข้อมูลสิ่งที่แนบมา
ฟอร์มย่อยที่มีข้อมูลที่เกี่ยวข้อง
ฟอร์มย่อยการสั่งซื้อ (ทางด้านขวาของฟอร์มพนักงาน) จะแสดงใบสั่งซื้อล่าสุด (ถ้ามี) ที่จัดการโดยพนักงาน ฟอร์มย่อยจะแสดงลําดับในมุมมองแผ่นข้อมูล โดยเรียงลําดับจากใหม่ที่สุดไปหาเก่าที่สุด เมื่อต้องการแก้ไขใบสั่งซื้อที่มีอยู่สําหรับพนักงานรายนั้น ให้คลิก ID คําสั่งซื้อที่มีไฮเปอร์ลิงก์ # ในฟอร์มย่อยคําสั่งซื้อ
แหล่งระเบียนของฟอร์มพนักงาน
คิวรีที่เรียกว่า qryEmployees จะส่งกลับระเบียนในแบบฟอร์ม การใช้คิวรีแทนการใช้ตาราง มักจะถือว่าเป็นแนวทางปฏิบัติที่ดีที่สุด คิวรีจะส่งกลับระเบียนจากตารางเดียวเท่านั้น นอกจากนี้ คิวรียังสามารถสร้างพารามิเตอร์เพื่อจํากัดจํานวนระเบียนที่ส่งกลับได้
-
ส่วนคําสั่ง Select ของคิวรีนี้ใช้อักขระตัวแทน '*' เพื่อส่งกลับเขตข้อมูลทั้งหมดจากตารางพนักงาน
-
เขตข้อมูลจากการคํานวณสองเขตข้อมูลในคิวรีจะส่งกลับ FirstName LastName และ LastName, FirstName
ค่าจากการคํานวณในตัวควบคุม
หมาย เหตุ: เขตข้อมูลจากการคํานวณ จะไม่ถูก จัดเก็บไว้ในตาราง อย่างไรก็ตาม แหล่งข้อมูลระเบียน เหล่านี้จะ พร้อมใช้งานใน แหล่งระเบียนของฟอร์ม
ตัวควบคุมส่วนใหญ่บนฟอร์มพนักงานจะถูก เปิดใช้งาน เพื่อให้คุณสามารถเลือกตัวควบคุมด้วยเมาส์หรือแท็บลงในฟอร์มและจะไม่ถูกล็อก เพื่อให้สามารถแก้ไขได้
นอกจากลักษณะการทํางานของ Access ที่มีอยู่แล้วภายใน แล้ว ฟังก์ชันและย่อย VBA ในฟอร์ม ในตัวควบคุมบนฟอร์ม และในโมดูลแบบสแตนด์อโลนจะทําตรรกะพื้นฐานที่จําเป็นสําหรับพนักงาน ส่วนต่อไปนี้จะอธิบายฟังก์ชันและรหัสที่นําฟังก์ชันเหล่านั้นไปใช้
การกระทําของตัวควบคุมที่มีอยู่แล้วภายใน
ลักษณะการทํางานเริ่มต้นของตัวเลือกระเบียนของฟอร์ม:
-
การคลิกซ้าย บนตัวเลือกระเบียนทางด้านซ้ายของฟอร์มในมุมมองเดียวจะบันทึกระเบียนปัจจุบันที่มีการแก้ไขใดๆ การบันทึกโดยการคลิกซ้ายตัวเลือกระเบียนจะทริกเกอร์ฟังก์ชันและย่อย VBA ที่เหมาะสม
-
การคลิกขวา บนตัวเลือกระเบียนทางด้านซ้ายของฟอร์มในมุมมองเดียวจะป็อปอัพเมนูเพื่อดําเนินการต่างๆ เช่น ตัด คัดลอก หรือวางระเบียน การลบหรือการตัดเรกคอร์ดจะทริกเกอร์ฟังก์ชัน EmployeeCanBeDeleted ที่ อธิบายไว้ด้านล่าง
-
ต้องเปิดใช้งานตัวเลือกระเบียนเพื่อให้ฟอร์มมีลักษณะการทํางานเริ่มต้นนี้พร้อมใช้งาน
Referential Integrity สําหรับระเบียนในฟอร์ม
Referential Integrity ป้องกันการลบพนักงานที่มีระเบียน รอง ในตารางที่เกี่ยวข้อง ดังนั้น Access จะแสดงข้อผิดพลาดถ้าผู้ใช้พยายามลบระเบียนที่มีระเบียนรอง Northwind Employee Form Access จะแทนที่ข้อความแสดงข้อผิดพลาดทั่วไปที่เป็นค่าเริ่มต้นเกี่ยวกับ Referential Integrity ด้วยข้อความแบบกําหนดเอง
โค้ดในกระบวนงานลบของฟอร์มตอบสนองต่อความพยายามในการตัดระเบียนจากเมนูคลิกขวา หรือลบระเบียนโดยใช้แป้น Delete
ฟังก์ชันส่วนตัว EmployeeCanBeDeleted จะตรวจสอบระเบียนที่เกี่ยวข้องสําหรับพนักงานนั้นในตารางใบสั่งซื้อใบสั่งซื้อพนักงาน และสิทธิ์การใช้งานของพนักงาน
ถ้าพบแล้ว ฟังก์ชันนี้จะระงับข้อความแสดงข้อผิดพลาดเริ่มต้นและแจ้งให้ผู้ใช้ทราบถึงสาเหตุที่ระเบียนไม่สามารถลบได้โดยใช้กล่องโต้ตอบทั่วไปเดียวกันกับฟอร์ม ลูกค้า ที่ใช้เพื่อแจ้งให้ผู้ใช้ทราบถึง สาเหตุที่ลูกค้าไม่สามารถลบได้
ตรวจ สอบ
พนักงานใช้การตรวจสอบความถูกต้องและการจัดการข้อผิดพลาดมาตรฐาน การตรวจสอบความถูกต้องสําหรับตัวควบคุมมีอยู่สองชนิด
-
ฟิลด์ที่จําเป็น
-
รูปแบบมาตรฐาน
การตรวจสอบความถูกต้องของเขตข้อมูลที่จําเป็น
ต้องมีสามฟิลด์สําหรับพนักงานทั้งหมด:
-
ชื่อ
-
นามสกุล
-
ตําแหน่งงาน
ในเวอร์ชันนักพัฒนานี้ เหตุการณ์ ก่อนการอัปเดตของฟอร์มจะตรวจสอบความถูกต้องของเขตข้อมูลที่จําเป็น ถ้าผู้ใช้พยายามบันทึกระเบียนพนักงานโดยไม่มีค่าสําหรับเขตข้อมูลที่จําเป็นอย่างน้อยหนึ่งเขตข้อมูลที่ไม่มีการตรวจสอบความถูกต้องของค่า จะยกเลิกการบันทึกและเน้นเขตข้อมูลที่จําเป็นใดๆ ที่ไม่มีค่า ในฟอร์มพนักงานใน Northwind การตรวจสอบความถูกต้องของเขตข้อมูลที่จําเป็นจะถูกจัดการโดยเหตุการณ์ ก่อนการปรับปรุง ของฟอร์ม ไม่ใช่โดยตัวควบคุมแต่ละตัว
เหตุการณ์ ก่อนปรับปรุง ของฟอร์มพนักงานจะตรวจสอบการมีอยู่ของค่าสําหรับเขตข้อมูลที่จําเป็นสามเขตข้อมูล การบันทึกระเบียนพนักงานใหม่หรือที่แก้ไขจะดําเนินการเหตุการณ์ ก่อนอัปเดต ของฟอร์ม ซึ่งจะเรียกใช้ ฟังก์ชันสาธารณะ ที่ตรวจสอบและตอบกลับ การแสดงตนหรือการไม่มีค่าที่จําเป็น
โมดูล modValidation ประกอบด้วยฟังก์ชันเหล่านี้:
-
ตรวจสอบความถูกต้องของฟอร์ม
-
IsValidForm
-
HighlightInvalidControls
-
HighlightControl
-
ValidateForm_RemoveHighlights
การจัดการพนักงานใหม่
การคลิกปุ่ม เพิ่มพนักงาน จะรัน btnNewEmployee_Click ย่อยส่วนตัวเพื่อ:
-
บันทึกระเบียนปัจจุบัน และ
-
ตั้งค่าโฟกัสของฟอร์มไปยังระเบียน
ใหม่ '
อักขระตัวแทนกับเขตข้อมูลที่มีชื่อในคิวรีแบบใช้เลือกข้อมูล
ส่วนคําสั่ง SELECT ใน qryEmployees จะใช้อักขระตัวแทน "*" เพื่อเลือกเขตข้อมูล ทั้งหมด ในตาราง การออกแบบคิวรีอักขระตัวแทนจะรวมเขตข้อมูลที่เพิ่มใหม่จากตารางต้นแบบโดยอัตโนมัติ ซึ่งไม่สามารถทําได้กับรายการของเขตข้อมูลที่ระบุ ในทางกลับกัน เขตข้อมูลหนึ่งอาจแสดงรายการเขตข้อมูลที่เฉพาะเจาะจงเพื่อจํากัด ชุดระเบียน ที่ส่งกลับเฉพาะเขตข้อมูลที่จําเป็นในฟอร์มที่ใช้แสดงเท่านั้น เป็นต้น
ตัวเลือกการออกแบบที่เหมาะสม
การออกแบบของคุณควรขึ้นอยู่กับวิธีการที่เหมาะสมกับความต้องการของคุณ แม้ว่าเมื่อเป็นไปได้ความชอบมักจะไปที่วิธีการที่น้อยที่สุดที่จะต้องมีการบํารุงรักษาในอนาคต (เช่นวิธีการใช้อักขระตัวแทน)
กล่องคําสั่งผสมที่ผูกกับตารางการค้นหา — สองวิธี
รายการที่เกี่ยวข้อง เช่น หัวหน้างานของพนักงาน จะแสดงอยู่ในดรอปดาวน์หรือกล่องคําสั่งผสมบนฟอร์ม เฉพาะ Foreign Key สําหรับ SupervisorID เท่านั้นที่จําเป็นในคิวรี แหล่งข้อมูลระเบียน ของแบบฟอร์ม เนื่องจากเขตข้อมูลนั้นผูกอยู่กับเขตข้อมูล Foreign Key (SupervisorID) กล่องคําสั่งผสมจะแสดงค่าข้อความที่สอดคล้องกันด้วย
กล่องคําสั่งผสมสองคอลัมน์ที่มีคอลัมน์ ID ที่ซ่อนอยู่และคอลัมน์คําอธิบายที่มองเห็นได้ทําให้ทํางานนี้ ในฟอร์มพนักงาน กล่องคําสั่งผสม Supervisor จะผูกอยู่กับคิวรีแบบสองคอลัมน์อย่างง่าย ดูคุณสมบัติ RowSource สําหรับ Supervisor
อย่างไรก็ตาม ในบางกรณี ตารางการค้นหาไม่มีคีย์หลักที่แยกต่างหาก ดังนั้น ค่าข้อความเองจึงเป็นคีย์หลัก
เมื่อรายการของค่าที่เป็นไปได้มีขนาดเล็กและมีความเสถียรสูง เช่น ตําแหน่งของพนักงาน ค่ามักจะเรียกว่า โดเมนที่ปิด การเปลี่ยนแปลงหรือการเพิ่มค่าสําหรับชื่อเรื่องไม่ใช่เรื่องปกติ ตารางการค้นหาโดเมนที่ปิดแล้วเป็นตัวเลือกสําหรับวิธีการคิวรีแบบหนึ่งคอลัมน์
ในฟอร์มพนักงาน กล่องคําสั่งผสม ชื่อเรื่อง จะถูกผูกไว้กับคิวรีแบบหนึ่งคอลัมน์ของ ชื่อเรื่อง ดูคุณสมบัติ RowSource สําหรับ ชื่อเรื่อง
-
เรียนรู้เพิ่มเติมเกี่ยวกับ ฟอร์มแยก
-
เรียนรู้เพิ่มเติมเกี่ยวกับ Referential Integrity
-
Northwind 2.0 Developer Edition: หัวข้อทั้งหมด
-
Northwind 2.0 Developer Edition: สิ่งที่คุณควรรู้