ใน MS Access แบบฟอร์มจะแสดงข้อมูลแบบหล่นลงที่มีข้อมูลจากฟอร์มที่เกี่ยวข้องได้อย่างไร


0

ในฐานข้อมูล MS Access ของฉันฉันต้องการสร้างแบบฟอร์มเพื่อกรอกคำสั่งซื้อใหม่

ฉันมีลูกค้าตารางและคำสั่งซื้อตาราง

**Customers** => (id, firstname, lastname, address)
                  ^
                  |
**Orders** =>   (customer, product, total)

(หมายเหตุ: เขตข้อมูลลูกค้ามีความสัมพันธ์แบบหนึ่งต่อหลายที่มีID )

ฉันต้องการสร้างแบบฟอร์มที่ฉันใส่ไว้ในผลิตภัณฑ์และเลือกลูกค้าที่สั่งซื้อสิ่งนี้จากเมนูแบบเลื่อนลงบางประเภท

คุณจะบรรลุสิ่งนี้ใน Access ได้อย่างไร จากการวิจัยของฉันทั้งหมดที่ฉันสามารถทำคือการสร้างรูปแบบที่มีตัวยึดสำหรับเขตข้อมูลในตารางปัจจุบัน แต่ไม่มีอะไรที่จะใช้ประโยชน์จากความสัมพันธ์ที่จะช่วยให้ฉันกรอกลูกค้าฟิลด์

คำตอบ:


4

ใช่คุณสามารถทำสิ่งนี้ได้อย่างแน่นอน มีเทคนิคเล็กน้อย แต่ไม่มาก

  1. สร้างฟอร์มใหม่และตั้งค่าแหล่งระเบียนให้เป็นตาราง "คำสั่งซื้อ" หากต้องการดูหน้าต่างคุณสมบัติของฟอร์มคลิกขวาในแบบฟอร์มและเลือก "คุณสมบัติของแบบฟอร์ม"
  2. จาก ribbon ออกแบบฟอร์มลากกล่องคำสั่งผสมใหม่ลงบนแบบฟอร์ม
  3. ฉันจะยกเลิกตัวช่วยสร้างหากมันเกิดขึ้นและทำทุกอย่างด้วยตนเอง แต่คุณสามารถใช้สิ่งนี้ได้หากคุณต้องการ
  4. ตรวจสอบให้แน่ใจว่าได้เลือกกล่องคำสั่งผสมแล้วดูที่แผ่นคุณสมบัติ
  5. ตั้งค่าแหล่งควบคุมเป็นฟิลด์ "ลูกค้า"
  6. ตั้งค่าแหล่งที่มาของแถวให้เป็น "SELECT Customers.ID, Customers.Firstname, Customers.LastName FROM Customers;" หรือคลิกที่ปุ่ม "... " เพื่อสร้างแบบสอบถามแบบง่ายนี้ โปรดทราบว่าฟิลด์ FIRST คือ ID ซึ่งเป็นลิงก์ระหว่างฟอร์มและกล่องคำสั่งผสม
  7. ตอนนี้ใช้งานได้ แต่จะแสดงเฉพาะ ID เท่านั้นซึ่งไม่มีประโยชน์ คุณต้องแก้ไขการจัดรูปแบบของกล่องคำสั่งผสม ไปที่แท็บรูปแบบในคุณสมบัติจากนั้นมองหา "จำนวนคอลัมน์" เปลี่ยนเป็น 3
  8. ภายใต้นี่คือความกว้างคอลัมน์ คุณสามารถใช้เพื่อซ่อนฟิลด์ ID โดยใส่ "0,3,3" คุณอาจต้องการเล่นกับค่าเหล่านี้เพื่อให้เหมาะสมกับความยาวของชื่อ
  9. คุณอาจต้องการเปิด "หัวคอลัมน์" หรือไม่ - ขึ้นอยู่กับคุณ
  10. ดูแบบฟอร์มตอนนี้ใน "มุมมองฟอร์ม" และสนุกได้เลย!

ปกติฉันจะบันทึกคิวรีที่อยู่เบื้องหลังคอมโบแยกกัน จากนั้นในขั้นตอนที่ 6 คุณเลือกแบบสอบถามแทนที่จะวาง SQL เหตุผลนี้คือคุณสามารถใช้แหล่งข้อมูลสำหรับกล่องคำสั่งผสมทั่วไป แบบแผนการตั้งชื่อเป็นสิ่งที่ดีมากเมื่อฐานข้อมูลของคุณเติบโตขึ้นดังนั้นจงใช้เหตุผลเกี่ยวกับสิ่งที่คุณเรียกว่า

ในบันทึกนี้ฉันจะเปลี่ยนชื่อตัวแปรตารางของคุณเป็นด้านล่าง สำหรับฉันนี้ชัดเจน คำสั่งซื้อต้องการรหัสเช่นกัน หากรหัสนั้นมีชื่อเหมือนกันคุณเพียงแค่เล่น "จับคู่ชื่อ" เมื่อเข้าร่วมตาราง

**Customers** => (CustomerID, firstname, lastname, address)
                           ^
                            \
**Orders** =>   (OrderID, CustomerID, product, total)

นอกจากนี้คุณยังสามารถรวม First / Last เป็นหนึ่งเขตข้อมูลแทนที่จะแยกออกจากกัน (ในแบบสอบถามมีเขตข้อมูล Custname: [Firstname] & "" & [Last]] คุณสามารถทำให้กล่องคำสั่งผสมที่มีประสิทธิภาพในการเข้าถึง แต่ระวังถ้าพวกเขามีจำนวนมากแถวในพวกเขา - พวกเขาจะช้าลง

สำหรับผลิตภัณฑ์ในการสั่งซื้อคุณจำเป็นต้องสร้างตารางอื่นที่เรียกว่า "บรรทัดการสั่งซื้อ" ซึ่งมีเขตข้อมูล OrderLineID, OrderID, ProductID และจำนวนเป็น จากนั้นคำสั่งเดียวสามารถมีได้หลายผลิตภัณฑ์ นี่เกินขอบเขตของคำถาม แต่ฉันคิดว่าฉันจะชี้คุณไปในทิศทางที่ถูกต้องด้วยเช่นกัน คุณต้องมีตารางผลิตภัณฑ์เช่นกัน


ฉันไม่เห็น "แหล่งที่มาของการบันทึก" ที่ใดก็ได้เมื่อฉันสร้างแบบฟอร์ม
CodyBugstein

ข้ามขั้นตอนนั้นและปฏิบัติตามส่วนที่เหลือ มันได้ผล! ขอบคุณมาก!
CodyBugstein

ดีใจที่ได้ช่วยเหลือ! หากใช้งานได้คุณจะต้องตั้งค่าแหล่งระเบียนของฟอร์มในขั้นตอนที่ 1 อย่างใด
Saulysw

ฉันคิดว่ามันทำอย่างนั้นโดยอัตโนมัติ
CodyBugstein
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.