คุณสามารถใช้แอคชัน ApplyFilter เพื่อนํา ตัวกรองคิวรี หรือส่วนคําสั่ง SQL WHERE ไปใช้กับ ตารางฟอร์ม หรือ รายงาน เพื่อจํากัดหรือเรียงลําดับระเบียนในตาราง หรือระเบียนจากตารางหรือคิวรีต้นแบบของฟอร์มหรือรายงาน สําหรับรายงาน คุณสามารถใช้การกระทํานี้ได้เฉพาะใน แมโคร ที่ระบุโดยคุณสมบัติเหตุการณ์ OnOpen ของรายงานเท่านั้น
หมายเหตุ: คุณสามารถใช้แอคชันนี้เพื่อนําส่วนคําสั่ง WHERE ของ SQL ไปใช้เมื่อนําตัวกรองเซิร์ฟเวอร์ไปใช้เท่านั้น ไม่สามารถใช้ตัวกรองบนเซิร์ฟเวอร์กับแหล่งระเบียนของกระบวนงานที่เก็บไว้ได้
หมายเหตุ: แมโครแอคชัน ApplyFilter ไม่พร้อมใช้งานใน Access Web App
การตั้งค่า
แอคชัน ApplyFilter มีอาร์กิวเมนต์ดังนี้
อาร์กิวเมนต์ของแอคชัน |
คำอธิบาย |
ชื่อตัวกรอง |
ชื่อของตัวกรองหรือคิวรีที่จํากัดหรือเรียงลําดับระเบียนของตาราง ฟอร์ม หรือรายงาน คุณสามารถใส่ชื่อของคิวรีที่มีอยู่หรือตัวกรองที่ได้บันทึกเป็นคิวรีในกล่อง ชื่อตัวกรอง ในส่วน อาร์กิวเมนต์ของแอคชัน ของบานหน้าต่าง ตัวสร้างแมโคร หมายเหตุ: เมื่อคุณใช้แอคชันนี้เพื่อนําตัวกรองบนเซิร์ฟเวอร์ไปใช้ |
เงื่อนไขของ Where |
ส่วนคําสั่ง SQL WHERE ที่ถูกต้อง (ไม่มีคําว่า WHERE) หรือ นิพจน์ ที่จํากัดระเบียนของตาราง ฟอร์ม หรือรายงาน หมายเหตุ: ในนิพจน์อาร์กิวเมนต์ เงื่อนไข Where โดยทั่วไปทางด้านซ้ายของนิพจน์จะมีชื่อเขตข้อมูลจากตารางหรือคิวรีต้นแบบสําหรับฟอร์มหรือรายงาน โดยทั่วไปแล้ว ทางด้านขวาของนิพจน์จะมี เกณฑ์ ที่คุณต้องการนําไปใช้กับเขตข้อมูลนี้เพื่อจํากัดหรือเรียงลําดับระเบียน ตัวอย่างเช่น เกณฑ์อาจเป็นชื่อของตัวควบคุมบนฟอร์มอื่นที่มีค่าที่คุณต้องการให้ระเบียนในฟอร์มแรกตรงกัน ชื่อของตัวควบคุมควรเป็นแบบเต็ม ตัวอย่างเช่น: Forms! formname! controlname ชื่อเขตข้อมูลควรล้อมรอบด้วยเครื่องหมายอัญประกาศคู่และสัญพจน์สตริงควรอยู่ในเครื่องหมายอัญประกาศเดี่ยว ความยาวสูงสุดของอาร์กิวเมนต์ เงื่อนไข Where คือ 255 อักขระ ถ้าคุณต้องการใส่ส่วนคําสั่ง SQL WHERE ที่ยาวขึ้น ให้ใช้เมธอด ApplyFilter ของวัตถุ DoCmd ในโมดูล Visual Basic for Applications (VBA) คุณสามารถใส่คําสั่งส่วนคําสั่ง SQL WHERE ได้สูงสุด 32,768 อักขระใน VBA |
หมายเหตุ: คุณสามารถใช้อาร์กิวเมนต์ ชื่อตัวกรอง ถ้าคุณได้กําหนดตัวกรองที่ให้ข้อมูลที่เหมาะสมไว้แล้ว คุณสามารถใช้อาร์กิวเมนต์ เงื่อนไข Where เพื่อใส่เกณฑ์ข้อจํากัดโดยตรง ถ้าคุณใช้ทั้งสองอาร์กิวเมนต์ Access นําส่วนคําสั่ง WHERE ไปใช้กับผลลัพธ์ของตัวกรอง คุณต้องใช้อาร์กิวเมนต์หนึ่งหรือทั้งสองอาร์กิวเมนต์
ข้อสังเกต
คุณสามารถใช้ตัวกรองหรือการสอบถามกับแบบฟอร์มใน มุมมองฟอร์ม หรือ มุมมองแผ่นข้อมูล
เงื่อนไขตัวกรองและ WHERE ที่คุณนําไปใช้จะกลายเป็นการตั้งค่าคุณสมบัติ ตัวกรอง หรือ ServerFilter ของฟอร์มหรือรายงาน
สําหรับตารางและฟอร์ม การดําเนินการนี้จะคล้ายกับการคลิก ใช้ตัวกรอง/เรียงลําดับ หรือ ใช้ตัวกรองเซิร์ฟเวอร์ บนเมนู ระเบียน คําสั่งเมนูจะนําตัวกรองที่สร้างขึ้นล่าสุดไปใช้กับตารางหรือฟอร์ม ในขณะที่แอคชัน ApplyFilter จะใช้ตัวกรองหรือคิวรีที่ระบุ
ในฐานข้อมูล Access ถ้าคุณชี้ไปที่ ตัวกรอง บนเมนู ระเบียน แล้วคลิก ตัวกรอง/การเรียงลําดับขั้นสูง หลังจากเรียกใช้แอคชัน ApplyFilterตัวกรองขั้นสูง/หน้าต่างการจัดเรียง จะแสดงเกณฑ์ตัวกรองที่คุณเลือกด้วยการกระทํานี้
เมื่อต้องการเอาตัวกรองออกและแสดงระเบียนทั้งหมดสําหรับตารางหรือฟอร์มในฐานข้อมูล Access คุณสามารถใช้แอคชัน ShowAllRecords หรือคําสั่ง เอาตัวกรอง/การเรียงลําดับออก บนเมนู ระเบียน เมื่อต้องการเอาตัวกรองในโครงการ Access (.adp) ออก คุณสามารถกลับไปยังหน้าต่าง กรองตามฟอร์มบนเซิร์ฟเวอร์ และเอาเกณฑ์ตัวกรองทั้งหมดออก แล้วคลิก นําตัวกรองเซิร์ฟเวอร์ไปใช้ บนเมนู ระเบียน บนแถบเครื่องมือ หรือตั้งค่าคุณสมบัติ ServerFilterByForm เป็น False (0)
เมื่อคุณบันทึกตารางหรือฟอร์ม Access จะบันทึกตัวกรองใดๆ ที่กําหนดไว้ในวัตถุนั้นในปัจจุบัน แต่จะไม่นําตัวกรองไปใช้โดยอัตโนมัติในครั้งถัดไปที่เปิดวัตถุ (แม้ว่าวัตถุนั้นจะนําการเรียงลําดับใดๆ ที่คุณนําไปใช้กับวัตถุไปใช้โดยอัตโนมัติก่อนที่จะถูกบันทึก) ถ้าคุณต้องการนําตัวกรองไปใช้โดยอัตโนมัติเมื่อเปิดฟอร์มเป็นครั้งแรก ให้ระบุแมโครที่มีแอคชัน ApplyFilter หรือกระบวนงานเหตุการณ์ที่มีเมธอด ApplyFilter ของวัตถุ DoCmd เป็นการตั้งค่าคุณสมบัติเหตุการณ์ OnOpen ของฟอร์ม คุณยังสามารถนําตัวกรองไปใช้โดยใช้การดําเนินการ OpenForm หรือ OpenReport หรือวิธีการที่สอดคล้องกัน เมื่อต้องการนําตัวกรองไปใช้โดยอัตโนมัติเมื่อเปิดตารางเป็นครั้งแรก คุณสามารถเปิดตารางโดยใช้แมโครที่มีแอคชัน OpenTable ตามด้วยแอคชัน ApplyFilter ทันที
ตัวอย่าง
นําตัวกรองไปใช้โดยใช้แมโคร
แมโครต่อไปนี้มีชุดของการกระทํา ซึ่งแต่ละแอคชันจะกรองระเบียนสําหรับฟอร์ม รายการหมายเลขโทรศัพท์ลูกค้า ซึ่งจะแสดงการใช้การดําเนินการ ApplyFilter, ShowAllRecords และ GoToControl นอกจากนี้ยังแสดงการใช้เงื่อนไขเพื่อกําหนดปุ่มสลับในกลุ่มตัวเลือกที่ถูกเลือกบนฟอร์ม แถวการกระทําแต่ละแถวจะสัมพันธ์กับปุ่มสลับที่เลือกชุดระเบียนที่เริ่มต้นด้วย A, B, C และอื่นๆ หรือระเบียนทั้งหมด แมโครนี้ควรถูกแนบกับเหตุการณ์ AfterUpdate ของกลุ่มตัวเลือก CompanyNameFilter
เงื่อนไข |
การดำเนินการ |
อาร์กิวเมนต์: การตั้งค่า |
ข้อคิดเห็น |
[CompanyNameFilters]=1 |
ApplyFilter |
ตําแหน่งที่เงื่อนไข: [CompanyName] Like "[Aàáâãä]*" |
กรองสําหรับชื่อบริษัทที่ขึ้นต้นด้วย A, À, Á, Â, Ã หรือ Ä |
[CompanyNameFilters]=2 |
ApplyFilter |
ตําแหน่งที่มีเงื่อนไข: [CompanyName] Like "B*" |
กรองชื่อบริษัทที่ขึ้นต้นด้วย B |
[CompanyNameFilters]=3 |
ApplyFilter |
ในกรณีที่มีเงื่อนไข: [CompanyName] Like "[CÇ]*" |
กรองชื่อบริษัทที่ขึ้นต้นด้วย C หรือ Ç |
... แถวการดําเนินการสําหรับ D ถึง Y มีรูปแบบเดียวกับ A ถึง C ... |
|||
[CompanyNameFilters]=26 |
ApplyFilter |
ตําแหน่งที่มีเงื่อนไข: [CompanyName] Like "[ZÆØÅ]*" |
กรองชื่อบริษัทที่ขึ้นต้นด้วย Z, Æ, Ø หรือ Å |
[CompanyNameFilters]=27 |
ShowAllRecords |
แสดงเรกคอร์ดทั้งหมด |
|
[RecordsetClone] [RecordCount]>0 |
GoToControl |
ชื่อตัวควบคุม: CompanyName |
ถ้าระเบียนถูกส่งกลับสําหรับตัวอักษรที่เลือก ให้ย้ายโฟกัสไปยังตัวควบคุม CompanyName |