วิธีการใช้กล่องคำสั่งผสม parameterized ในโครงการ Access

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 281870 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
moderate: ต้องแมโครพื้นฐาน รหัส และทักษะในการทำงานร่วมกัน

บทความนี้สามารถใช้ได้เฉพาะกับโครงการ Microsoft Access (.adp)

ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

สรุป

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

ตัวอย่างในบทความนี้เพิ่มกล่องคำสั่งผสมแบบฟอร์มลูกค้าในตัวอย่างโครงการ NorthwindCS.adp กล่องคำสั่งผสมแสดงรายการใบสั่งที่วางจากลูกค้าปัจจุบัน เมื่อมีเลือก ใบสั่งที่ฟอร์มเปิด การแสดงรายละเอียดของใบสั่งที่เลือก

คุณสามารถใช้วิธีที่แตกต่างกันสี่จะสร้างรายการของใบสั่งที่วาง โดยลูกค้าที่ตรงกัน วิธีการเหล่านี้ใช้โครงการ Access (.adp) กับ Microsoft SQL Server 2000 เป็นแหล่งข้อมูล วิธีการเหล่านี้จะอธิบายไว้ในส่วนถัดไป

ข้อมูลเพิ่มเติม

การสร้างกล่องคำสั่งผสม

ส่วนนี้แสดงวิธีการสร้างกล่องคำสั่งผสมก่อน บนแบบฟอร์มลูกค้าที่แสดงรายการของใบสั่งของลูกค้าปัจจุบัน
  1. เปิดแบบฟอร์มลูกค้าในมุมมองออกแบบ
  2. ในกล่องเครื่องมือ คลิกตัวช่วยสร้างตัวควบคุมแล้ว เพิ่มกล่องคำสั่งผสมให้กับฟอร์ม
  3. บนหน้าแรกของวิซาร์ด เลือก การค้นหาค่าในตารางหรือแบบสอบถาม แล้ว คลิกถัดไป.
  4. บนหน้าสองของวิซาร์ด คลิตารางใบสั่ง และคลิกถัดไป.
  5. บนหน้าสามของวิซาร์ด เพิ่ม OrderID, CustomerID และ OrderDate เป็นเขตข้อมูลในกล่องคำสั่งผสม และจากนั้น คลิกถัดไป.
  6. บนหน้าของวิซาร์ดสี่ คลิกเพื่อยกเลิกการซ่อนคอลัมน์คีย์และลดขนาดคอลัมน์ CustomerID แล้ว เพื่อให้ไม่สามารถมองเห็น คลิกถัดไป.
  7. บนหน้าของวิซาร์ด fifth คลิกถัดไปอีกครั้งเพื่อยอมรับ OrderID เป็นฟิลด์ที่จะจัดเก็บ หรือใช้ในฐานข้อมูลของคุณ
  8. บนหน้าของวิซาร์ด sixth เลือก การจดจำค่าสำหรับใช้ในภายหลัง แล้ว คลิกถัดไป.
  9. บนหน้าสุดท้ายของวิซาร์ด ป้ายชื่อกล่องคำสั่งผสมเลือกใบสั่งแล้ว คลิกเสร็จสิ้น.
  10. เปิดแผ่นคุณสมบัติสำหรับกล่องคำสั่งผสม แล้ว เปลี่ยนชื่อของกล่องคำสั่งผสมSelectOrderCombo.
  11. ตั้งค่านี้OnClickคุณสมบัติของกล่องคำสั่งผสมกับกระบวนงานเหตุการณ์ต่อไปนี้:
    Private Sub SelectOrderCombo_Click()
    On Error GoTo Err_SelectOrderCombo_Click
        Dim stDocName As String
        Dim stLinkCriteria As String
    
        stDocName = "Orders"
    
        stLinkCriteria = "[OrderID]=" & Me![SelectOrderCombo]
        DoCmd.OpenForm stDocName, , , stLinkCriteria
    
    Exit_SelectOrderCombo_Click:
        Exit Sub
    
    Err_SelectOrderCombo_Click:
        MsgBox Err.Description
        Resume Exit_SelectOrderCombo_Click
    
    End Sub
    					

เพิ่ม รหัส การ ฟื้นฟู ที่ กล่อง คำ สั่ง ผสม

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

ตั้งค่าสำหรับวิธีที่ 1 และ 2 แต่ละครั้งที่มีเลือกกล่องคำสั่งผสม เหตุการณ์ OnClick ใหม่แหล่งข้อมูลแถวสำหรับกล่องคำสั่งผสมจะแสดงเฉพาะที่สั่งที่ตรงกับลูกค้าปัจจุบัน

หมายเหตุ:: เนื่องจากฟิลด์ CustomerID เป็นเขตข้อมูลข้อความ เครื่องหมายใบเสนอราคาเดี่ยว (') ต้องถูก concatenated รอบ ๆ การอ้างอิงของฟอร์ม ตัวอย่างเช่น อนุประโยคสร้างขึ้นจะถูกแปลงจาก:
WHERE CustomerID = '" & Forms![Customers]![CustomerID] & "'"
				
เมื่อต้องการไป:
WHERE CustomerID = 'ALFKI'
				

วิธีที่ 1: เลือกเฉพาะกิจโฆษณาที่มีการใช้

ตั้งค่านี้OnEnterคุณสมบัติของกล่องคำสั่งผสมกับกระบวนงานเหตุการณ์ต่อไปนี้:
Me.SelectOrderCombo.RowSource = "SELECT TOP 100 PERCENT OrderID, CustomerID, OrderDate FROM Orders WHERE " _
     & "CustomerID = '" & Forms![Customers]![CustomerID] & "' ORDER BY OrderDate DESC"

				

วิธีที่ 2: การใช้มุมมองการเซิร์ฟเวอร์ SQL

  1. สร้างมุมมองใหม่ในโปรแกรมออกแบบมุมมอง และจากนั้น ให้เลือกแบบ OrderID, CustomerID และฟิลด์ OrderDate จากตารางใบสั่ง เมื่อต้องการเรียงลำดับรายการของใบสั่งจากรายการใหม่ล่าสุดไปเก่าที่สุด กำหนดนั้นชนิดของการเรียงลำดับสำหรับฟิลด์ OrderDate ไปจาก.
  2. บันทึกการมองเป็น vwCustomerOrders
  3. ตั้งค่านี้OnEnterคุณสมบัติของกล่องคำสั่งผสมกับกระบวนงานเหตุการณ์ต่อไปนี้:
    Me.SelectOrderCombo.RowSource = "SELECT * FROM vwCustomerOrders WHERE CustomerId = '" & Forms![Customers]![CustomerID] & "'"
    					
สำหรับวิธีที่ 3 และ 4 กล่องคำสั่งผสมrequeryมีเรียกวิธีบนเหตุการณ์ OnEnter ไป re-execute กระบวนงานที่เก็บไว้หรือฟังก์ชัน SQL จะส่งกลับระเบียนที่ตรงกัน ในตัวอย่างเหล่านี้ พารามิเตอร์ถูกกำหนดเป็นตัวควบคุมในแบบฟอร์มที่ใช้ @ ControlName ในเงื่อนไข การเข้าถึงเงื่อนไขการตรวจสอบโดยอัตโนมัติ และการร้องขอของเรกคอร์ดที่ตรงกัน

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

วิธีที่ 3: การใช้ SQL Server ที่เก็บไว้กระบวนงาน

  1. สร้างขั้นตอนใหม่ในโปรแกรมออกแบบกราฟิก
  2. เลือกตารางใบสั่ง แล้ว เพิ่มการ OrderID, CustomerID และฟิลด์ OrderDate กระบวนงานที่เก็บไว้
  3. ป้อน@ CustomerIDเป็นเกณฑ์สำหรับฟิลด์ CustomerID และเรียงลำดับ OrderDate ในฟิลด์จาก
  4. บันทึกกระบวนงานที่เก็บไว้เป็น spCustomerOrders และจากนั้น ปิด
  5. ตั้งค่ากระบวนการ spCustomerOrders ที่เก็บไว้เป็นแหล่งข้อมูลแถวสำหรับกล่องคำสั่งผสม

    หมายเหตุ:: สร้าง และบันทึกไว้ โดย Stored คำสั่ง SQL ต่อไปนี้ออกแบบกระบวนงาน:
    CREATE PROCEDURE dbo.spCustomerOrders
      (@CustomerID varchar(5))
      AS SELECT OrderID, CustomerID, OrderDate
      FROM   dbo.Orders
      WHERE  (CustomerID = @CustomerID)
      ORDER BY OrderDate DESC
    					
  6. ตั้งค่านี้OnEnterคุณสมบัติของกล่องคำสั่งผสมกับกระบวนงานเหตุการณ์ต่อไปนี้:
    Me.SelectOrderCombo.Requery
    					

วิธีที่ 4: การใช้ฟังก์ชันใน SQL Server 2000

คุณสามารถใช้วิธีการนี้เฉพาะถ้าโครงการ Access นั้นใช้ SQL Server 2000 หรือรุ่นที่ใหม่กว่าเป็นแหล่งข้อมูล
  1. สร้างฟังก์ชันในตัวออกแบบกราฟิก
  2. เลือกตารางใบสั่ง แล้ว เพิ่มการ OrderID, CustomerID และฟิลด์ OrderDate กระบวนงานที่เก็บไว้
  3. ป้อน@ CustomerIDเป็นเกณฑ์สำหรับฟิลด์ CustomerID และเรียงลำดับ OrderDate ในฟิลด์จาก
  4. บันทึกฟังก์ชัน fnCustomerOrders และจากนั้น ปิด
  5. กำหนดฟังก์ชัน fnCustomerOrders เป็นแหล่งข้อมูลแถวสำหรับกล่องคำสั่งผสม

    หมายเหตุ:: สร้าง และบันทึกไว้ โดย Stored คำสั่ง SQL ต่อไปนี้ออกแบบกระบวนงาน:
    CREATE FUNCTION dbo.fnCustomerOrders
      (@CustomerID varchar(5))
      RETURNS TABLE
      RETURN ( SELECT TOP 100 PERCENT OrderID, CustomerID, OrderDate
      FROM   dbo.Orders
      WHERE  (CustomerID = @CustomerID)
      ORDER BY OrderDate DESC )
    					
  6. ตั้งค่านี้OnEnterคุณสมบัติของกล่องคำสั่งผสมกับกระบวนงานเหตุการณ์ต่อไปนี้:
    Me.SelectOrderCombo.Requery
    					
เมื่อต้องการทดสอบวิธีเหล่านี้ เปิดแบบฟอร์ม และเลือกจากกล่องคำสั่งผสมของใบสั่งที่เลือก เหตุการณ์ OnEnter requeries กล่องคำสั่งผสม การสร้างรายการของใบสั่งสำหรับลูกค้าปัจจุบันโดยอัตโนมัติ เมื่อมีเลือกใบสั่ง ดำเนินการเหตุการณ์ OnClick ของกล่องคำสั่งผสม และแบบฟอร์มใบสั่งที่ เปิด การแสดงใบสั่งที่เลือก

คุณสมบัติ

หมายเลขบทความ (Article ID): 281870 - รีวิวครั้งสุดท้าย: 16 ตุลาคม 2553 - Revision: 2.0
ใช้กับ
  • Microsoft Access 2002 Standard Edition
Keywords: 
kbprogramming kbadp kbclientserver kbhowto kbmt KB281870 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:281870

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com