เลือกหัวข้อใดๆ ด้านล่างเพื่อเรียนรู้เกี่ยวกับการจัดการบริษัทใน Northwind Developer Edition
หมายเหตุ: หน้านี้ถูกอ้างอิงใน Access Developer Showcase Edition
ใน Northwind Starter Edition ลูกค้า เป็นบริษัทประเภทเดียว ใน Developer Edition เราได้ขยายให้รวมลูกค้าผู้จัดส่ง และผู้จําหน่าย
เรายังขยาย ผลิตภัณฑ์ ให้รวมผู้จําหน่ายหลายรายสําหรับผลิตภัณฑ์
แต่ละบริษัทสามารถมีได้เพียงชนิดเดียวเท่านั้น:ลูกค้า, ผู้จัดส่ง หรือผู้ขาย กรณีธุรกิจสําหรับเมื่อสามารถเปลี่ยนชนิดบริษัทได้มีการอธิบายไว้ในส่วน frmCompanyDetail ของบทความนี้ '
ชนิดบริษัทและตําแหน่งที่ใช้
-
ลูกค้าสําหรับการสั่งซื้อ
-
ผู้จัดส่งสําหรับการสั่งซื้อ
-
ผู้ขายสําหรับใบสั่งซื้อ
-
ผู้จําหน่ายสําหรับผลิตภัณฑ์
นอกจากนี้ บริษัทในเวอร์ชัน Northwind Developer สามารถมีที่ติดต่อได้หลายรายการ '
บริษัทใน Ribbon
การเลือกบริษัทจาก Ribbon จะแสดงบริษัทใน Northwind ในรายการ frmCompanyList
รายการบริษัท - frmCompanyList
ในเวอร์ชันของนักพัฒนา Northwind frmCompanyList คือฟอร์มแยก ฟอร์มแยกทําให้คุณเห็นข้อมูลสองมุมมองในเวลาเดียวกัน มุมมองฟอร์ม และมุมมองแผ่นข้อมูล นอกจากนี้ยังมีหัวกระดาษและท้ายกระดาษ ในการใช้งานนี้ เราจะไม่แสดงมุมมองฟอร์ม เมื่อไม่แสดงมุมมองฟอร์ม เราจะมีแผ่นข้อมูลที่มีส่วนหัวและส่วนท้าย
นี่คือวิธีที่เราบรรลุเป้าหมายนี้:
ใน frmCompanyList แถบตัวแยกระหว่างส่วนหัวและแผ่นข้อมูลจะไม่สามารถมองเห็นได้ แถบ ตัวแยกฟอร์มแยกของ คุณสมบัติฟอร์มถูกตั้งค่าเป็น ไม่ใช่ ดังนั้น จึงซ่อนมุมมองฟอร์ม
ฟอร์มแยกและฟอร์มแผ่นข้อมูลจะเหมือนกับเวิร์กชีต Excel ซึ่งสนับสนุนการกรองและการเรียงลําดับ และคุณสามารถแสดง ซ่อน หรือย้ายเขตข้อมูลหรือคอลัมน์ได้ นอกจากนี้ ยังสามารถรวมยอดคอลัมน์ได้อีกด้วย
ส่วนหัวกระดาษและท้ายกระดาษของฟอร์มแยกช่วยให้คุณสามารถใช้ปุ่มคําสั่ง รูปภาพ ข้อความ(ป้ายชื่อ) และตัวควบคุมฟอร์มการเข้าถึงอื่นๆ ที่คุณต้องการปรับปรุงประสบการณ์การใช้งานของผู้ใช้ เมื่อต้องการเรียนรู้เพิ่มเติมเกี่ยวกับฟอร์มและฟอร์มแยก คุณสามารถเริ่มต้นได้ที่นี่ แผ่นข้อมูลจะไม่แสดงส่วนหัวและส่วนท้าย
เรียนรู้เพิ่มเติมผ่าน บทนําสู่ฟอร์ม และ สร้างฟอร์มแยก '
แบบฟอร์ม รายการบริษัท สนับสนุนการดําเนินการห้าอย่างนี้:
-
ใช้ตัวกรองแบบกําหนดเองที่สร้างไว้ล่วงหน้า การกรองตามความต้องการ หรือทั้งสองอย่าง
-
แสดง/ซ่อนเขตข้อมูล
-
สร้างป้ายชื่อ
-
แสดงตัวกรอง
-
เพิ่มบริษัทใหม่
ดับเบิลคลิกที่ใดก็ได้ในแถวรายละเอียดเพื่อเปิดฟอร์ม รายละเอียดบริษัท (ไม่ใช่แค่บน ID เหมือนกับในแบบฟอร์มอื่นๆ) '
ตัวกรองที่สร้างไว้ล่วงหน้าและการกรองตามความต้องการ
แบบฟอร์ม frmCompanyList เต็มไปด้วยโอกาสที่จะกรอง บริษัท ใน Northwind ที่ด้านบนของหน้าจอ คุณสามารถกรองโดยใช้ปุ่มตัวเลือกเหล่านี้:
-
บริษัททั้งหมด (ค่าเริ่มต้น)
-
ลูกค้าเท่านั้น
-
เฉพาะผู้ขนส่งสินค้าเท่านั้น
-
ผู้ขายเท่านั้น
นอกจากนี้ ตัวเลือกการกรองที่มีอยู่แล้วภายในแผ่นข้อมูลจะพร้อมใช้งานตามต้องการ ตัวกรองใดๆ ที่ใช้กับฟอร์ม รายการบริษัท (ที่สร้างไว้ล่วงหน้าหรือตามความต้องการ) จะถูกส่งผ่านและนําไปใช้กับ frmCompanyDetail เมื่อเปิดขึ้น
เมื่อต้องการส่งผ่านตัวกรองจากฟอร์มหนึ่งไปยังอีกฟอร์มหนึ่ง ก่อนอื่น คุณต้องล้างสตริงตัวกรองของฟอร์มเพื่อให้มีเฉพาะชื่อเขตข้อมูลเท่านั้น ดูโค้ดโมดูล Open_frmCompanyDetail สําหรับคําอธิบายโดยละเอียดเพิ่มเติมเกี่ยวกับวิธีการทําสิ่งนี้และใน frmCompanyDetail ที่ข้อคิดเห็นสําหรับ Form_Load เพื่อดูว่ามันถูกนําไปใช้อย่างไร
เราส่งข้อมูลตัวกรองไปยังฟอร์มรายละเอียดบริษัทผ่านคุณสมบัติ OpenArgs ของฟอร์มแทนที่จะเปิดฟอร์มด้วยเงื่อนไขที่ คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับ OpenArgs ได้ที่นี่
แสดง/ซ่อนเขตข้อมูล
เลือก แสดง/ซ่อนเขตข้อมูล เพื่อเปิดกล่องโต้ตอบที่มีรายการของเขตข้อมูลที่พร้อมใช้งานทั้งหมด คุณสามารถเลือกหรือยกเลิกการเลือกคอลัมน์อย่างน้อยหนึ่งคอลัมน์ได้ เค้าโครงที่เลือกจะยังคงอยู่จากเซสชันหนึ่งไปยังอีกเซสชันหนึ่งจนกว่าจะมีการปรับใช้แอปพลิเคชันเวอร์ชันใหม่ ดู แสดงหรือซ่อนคอลัมน์ในแผ่นข้อมูล
สร้างป้ายชื่อ
ปุ่ม สร้างป้ายชื่อ จะเปิดตัวช่วยสร้างป้ายชื่อ Access เรียนรู้เพิ่มเติมเกี่ยวกับตัวช่วยสร้างป้ายผนึกที่นี่: สร้างป้ายจ่าหน้าจดหมายใน Access
เปิดรายละเอียดบริษัท
ดับเบิลคลิกที่ใดก็ได้ในแถวรายละเอียดเพื่อเปิด frmCompanyDetail
คลิกที่เขตข้อมูล ID (ตั้งค่าเป็นไฮเปอร์ลิงก์) หรือดับเบิลคลิกที่เขตข้อมูลอื่นใดในแถวรายละเอียดเพื่อเปิด frmCompanyDetail กับ บริษัท ที่เลือก และส่งตัวกรองแบบฟอร์มใดๆ ที่ใช้กับรายการบริษัทเพื่อ frmCompanyDetail
รายละเอียดบริษัท - frmCompanyDetail
ในตอนแรก frmCompanyDetail อาจดูค่อนข้างง่าย อย่างไรก็ตาม มันไม่ใช่ ในโค้ดเบื้องหลังแบบฟอร์มเกิดขึ้นมากมาย! แบบฟอร์ม จะเน้นการดําเนินการและฟีเจอร์ต่อไปนี้
-
ปุ่มคําสั่งและลิงก์หลายรายการ
-
เพิ่มบริษัท
-
รายการบริษัทในอีเมล
-
แสดงตัวกรอง
-
ลบบริษัท
-
เปิดแผนที่โดยยึดตามที่อยู่
-
เปิดเว็บไซต์จากไฮเปอร์ลิงก์
-
-
ยกเลิกหรือบันทึกการดําเนินการในโหมดเพิ่ม/แก้ไข
-
กฎทางธุรกิจที่จะควบคุมว่าเมื่อใดที่สามารถเปลี่ยนชนิดบริษัทได้
-
การตรวจสอบความสมบูรณ์ของการอ้างอิงก่อนเหตุการณ์การลบ '
เหตุการณ์ Form_Load มีการดําเนินการต่อไปนี้:
-
ใช้หลายพารามิเตอร์ที่ส่งผ่านไปยังฟอร์มผ่าน OpenArgs และฟังก์ชัน Northwind StringToDictionary แบบกําหนดเอง
-
ใช้คุณสมบัติฟอร์ม OpenArgs เพื่ออนุญาตให้ผู้ใช้เพิ่ม บริษัท ใหม่ขณะทํา การสั่งซื้อ
-
ใช้เทคนิค GoToRecord เพื่อเพิ่มบริษัทใหม่
-
ใช้เทคนิค SearchForRecord เพื่อย้ายไปยัง บริษัทที่เลือกบน frmCompanyList
-
ตัวเลือกการโยงหัวข้อ/การดําเนินการตามเงื่อนไข (ดู เหตุการณ์ Form_Load)
-
ตัวเลือกที่ 1 - คําชี้แจงกรณี
-
ตัวเลือกที่ 2 - ซ้อนกัน ถ้าเป็นอย่างอื่น
-
ตัวเลือกที่ 3 – ElseIf
-
ตัวเลือกที่ 4 - If Else และ ElseIf ที่ซ้อนกัน '
-
ในเหตุการณ์ Form_Current สิ่งต่อไปนี้จะเกิดขึ้น:
-
เปลี่ยนคําอธิบายเฉพาะของฟอร์มย่อยและวัตถุต้นฉบับในขณะรันไทม์โดยการเรียก ManageFormOptions() ย่อย Subroutine นี้ถูกเรียกจากหลายตําแหน่งในแบบฟอร์มนี้ '
ยกเลิกหรือบันทึกการดําเนินการเมื่ออยู่ในโหมดเพิ่มหรือแก้ไข
แบบฟอร์ม Access ของเราถูกผูกไว้ สิ่งนี้หมายความว่าอย่างไร จาก Microsoft: "ฟอร์ม 'ผูก' คือฟอร์มที่เชื่อมต่อโดยตรงกับแหล่งข้อมูล เช่น ตารางหรือคิวรี และสามารถใช้เพื่อใส่ แก้ไข หรือแสดงข้อมูลจากแหล่งข้อมูลนั้นได้"
ด้วยฟอร์มที่ถูกผูก Access ไม่จําเป็นต้องให้คุณ "บันทึก" ข้อมูลของคุณอย่างชัดเจน เมื่อคุณย้ายจากระเบียนหนึ่งไปยัง Access ระเบียนถัดไปจะบันทึกข้อมูลของคุณโดยอัตโนมัติ บ่อยครั้งที่ทํางานในแบบที่คุณต้องการ แต่จะเกิดอะไรขึ้นถ้าผู้ใช้ต้องดําเนินการเพื่อระบุว่าพวกเขาพร้อมที่จะบันทึก
ตัวอย่างเช่น ฟอร์ม frmCompanyDetail มีฟอร์มย่อยสําหรับ ที่ติดต่อ (sfrmCompanyDetail_Contacts) ดังนั้น จะเกิดอะไรขึ้นถ้าคุณเริ่มเพิ่มหรือแก้ไขข้อมูลบริษัท สมมติว่าหมายเลขโทรศัพท์ — และหยุดชั่วขณะเพื่อแก้ไขคําผิดที่คุณสังเกตเห็นในข้อมูลผู้ติดต่อ ตามค่าเริ่มต้น Access จะบันทึกการเปลี่ยนแปลงใดๆ ที่คุณทําไว้ในระเบียนบริษัทเมื่อคุณคลิกที่ระเบียนที่ติดต่อ ซึ่ง ไม่ใช่ สิ่งที่คุณต้องการ
ในแบบฟอร์มนี้ เราแสดงวิธีหนึ่งในการทําสิ่งนี้ให้สําเร็จด้วยบันทึกข้อมูลเดียวสําหรับบริษัท
เหตุผลในการมีปุ่ม ยกเลิก คืออะไร แป้นหลี กจะยกเลิก ข้อมูลใดๆ ที่ใส่หรือเปลี่ยนแปลง (แต่ยังไม่ได้บันทึก) ในตัวควบคุมบนฟอร์ม ในสถานะนี้ ไอคอนรูปดินสอจะปรากฏในตัวเลือกระเบียน (แถบแนวตั้งสีเทาที่ด้านซ้ายสุดของแถว)
อย่างไรก็ตาม หลังจากที่คุณคลิกปุ่ม เพิ่มบริษัท คุณจะสังเกตเห็นว่าไม่มีไอคอนรูปดินสอจนกว่าคุณจะเริ่มป้อนข้อมูลในเรกคอร์ดบริษัทใหม่ จะเกิดอะไรขึ้นถ้าคุณเปลี่ยนใจในการเพิ่มบริษัทใหม่ในจุดนี้ ถ้าคุณกดแป้น Escape จะไม่มีสิ่งใดเกิดขึ้นเนื่องจากคุณยังไม่ได้ใส่ข้อมูลใดๆ นั่นคือเหตุผลที่เรามีปุ่มยกเลิก
การคลิกปุ่ม ยกเลิก ทํางานเสมอ แป้น Escape จะทํางานเมื่อคุณใส่หรือเปลี่ยนแปลงข้อมูลเท่านั้น
ถ้าคุณเริ่มเพิ่มหรือเปลี่ยนแปลงข้อมูล แล้วปิดฟอร์มโดยไม่ต้องคลิก บันทึกหรือยกเลิก ตามค่าเริ่มต้น Access จะบันทึกข้อมูล
กฎทางธุรกิจ: ตามกฎทางธุรกิจของ Northwind สําหรับบริษัท ต่างๆ เราต้องการให้คุณระบุอย่างชัดเจนว่าคุณต้องการ "บันทึก" เพื่อให้แน่ใจว่าเราต้องตรวจสอบว่าผู้ใช้คลิกบันทึกในเหตุการณ์ Form_BeforeUpdate หรือไม่และหากพวกเขาไม่ได้คลิกบันทึกแจ้งให้ผู้ใช้ระบุว่าพวกเขาต้องการบันทึกหรือยกเลิกการเปลี่ยนแปลงของพวกเขา '
การเปลี่ยนแปลงชนิดบริษัท
กฎทางธุรกิจ: ถ้าบริษัทมีใบสั่ง ใบสั่งซื้อ หรือผู้จัดจําหน่ายสําหรับผลิตภัณฑ์อยู่แล้ว เราได้สร้างฟังก์ชัน CompanyIsActive() เพื่อพิจารณาว่ามีเงื่อนไขข้างต้นหรือไม่ ถ้าเป็นเช่นนั้น ผู้ใช้จะไม่สามารถเปลี่ยนชนิดบริษัทได้จนกว่าข้อมูลอ้างอิงเหล่านี้จะถูกล้างข้อมูล (ถูกลบ)
กฎนี้ถูกบังคับใช้ในแบบฟอร์มนี้เท่านั้น ในแอปพลิเคชันที่พร้อมสําหรับการผลิต คุณจะไม่อนุญาตให้ผู้ใช้เปลี่ยนแปลงข้อมูลโดยการเปิดตารางโดยตรง ใน Northwind เราอนุญาตให้คุณเปิดตารางและทําสิ่งที่คุณต้องการ นี่เป็นวิธีที่ยอดเยี่ยมในการเรียนรู้ แต่ก็ทําให้คุณมีอิสระที่จะทําการเปลี่ยนแปลงที่อาจละเมิดกฎ
คุณควรโปรแกรมป้องกันเสมอ วางแผนสําหรับเหตุการณ์ที่ไม่คาดคิด แม้ว่าปัจจุบัน บริษัท จะเป็นผู้ขนส่งสินค้าแต่ไม่ได้หมายความว่าพวกเขาไม่ได้เป็นผู้ขายหรือลูกค้าในบางครั้ง ID ของพวกเขาอาจอยู่ในระเบียนเก่าในตาราง ProductVendor หรือ PurchaseOrder '
ฟอร์มกล่องโต้ตอบแบบกําหนดเอง
เมื่อต้องการแสดงผลการค้นหา cboCompanyTypeID_BeforeUpdate ใช้ฟอร์มกล่องโต้ตอบ frmGenericDialog ซึ่งอาจเป็นทางเลือกที่ดีสําหรับกล่องข้อความมาตรฐานเมื่อคุณมีข้อมูลจํานวนมากที่จะแสดง นอกจากนี้ยังใช้กับแบบฟอร์มพนักงานเพื่อวัตถุประสงค์ที่คล้ายกัน' ลบการตรวจสอบ Referential Integrity
ใน Northwind Starter Edition เราปล่อยให้ลักษณะการทํางานเริ่มต้นของ Access แจ้งให้คุณทราบว่าบริษัทไม่สามารถลบได้เมื่อมีระเบียนที่เกี่ยวข้อง
ใน Northwind Developer Edition เราจะแจ้งให้คุณทราบก่อนการลบ แทนที่จะยอมรับลักษณะการทํางานเริ่มต้นของ Access เราทําเช่นนั้นโดยใช้ฟังก์ชั่นเดียวกันกับที่เราทําการเปลี่ยนแปลงประเภท บริษัท ฟังก์ชัน CompanyIsActive()
ความแตกต่างคือเราใส่ใจเกี่ยวกับ คําสั่งซื้อ หรือ ใบสั่งซื้อเท่านั้น ถ้าไม่มี คําสั่งซื้อ หรือ ใบสั่งซื้อ เราจะยืนยันความตั้งใจของคุณเพื่อลบ และเราจะลบ ผู้จําหน่ายผลิตภัณฑ์ และ ผู้ติดต่อ หากมีอยู่สําหรับคุณ
-
Northwind 2.0 Developer Edition: สิ่งที่คุณควรรู้
-
Northwind 2.0 Developer Edition: หัวข้อทั้งหมด