การใส่ Parameter ใน Crosstab Query

ใน Microsoft Access นั้น วิธีการหนึ่งที่จะทำให้ Query มีความยืดหยุ่น (Dynamic) คือการใช้ Parameter Query เป็นการกำหนดวิธีการส่งค่าให้กับ Query เพื่อให้มีการสืบค้นข้อมูลตามเงื่อนไขของ Parameter ที่ส่งให้ไป เช่น ส่งค่าวันที่ เพื่อสอบถามเฉพาะวันที่ ๆ เราสนใจ
การใส่ Parameter ใน Crosstab Query

การใส่ Parameter ใน Crosstab Query

ใน Microsoft Access นั้น วิธีการหนึ่งที่จะทำให้ Query มีความยืดหยุ่น (Dynamic) คือการใช้ Parameter Query เป็นการกำหนดวิธีการส่งค่าให้กับ Query เพื่อให้มีการสืบค้นข้อมูลตามเงื่อนไขของ Parameter ที่ส่งให้ไป เช่น ส่งค่าวันที่ เพื่อสอบถามเฉพาะวันที่ ๆ เราสนใจ โดยถ้าต้องการสอบถามข้อมูลจาก Query ให้ใส่ค่า Parameter (parameter query)ได้ ซึ่งหากเป็น Select Query จะไม่มีปัญหาใด ๆ ในการสืบค้น

ส่วน Design view ของ Select Query QOrders ซึ่งมี parameter ที่ฟิลด์ OrderDate

จากรูปข้างบน เป็นส่วน Design view ของ Select Query QOrders ซึ่งมี parameter ที่ฟิลด์ OrderDate และเมื่อ run query จะเห็นว่ามี InputBox ให้ป้อนค่า parameter ดังรูป

และเมื่อ run query จะเห็นว่ามี InputBox ให้ป้อนค่า parameter

หลังจากที่ป้อนค่าวันที่ 06-พ.ค.-2541 เรียบร้อยแล้วจะพบว่ามีการแสดงข้อมูลการสั่งซื้อตามวันที่ 06-พ.ค.-2541 ดังรูปข้างล่าง

หลังจากที่ป้อนค่าวันที่ 06-พ.ค.-2541 เรียบร้อยแล้วจะพบว่ามีการแสดงข้อมูลการสั่งซื้อตามวันที่ 06-พ.ค.-2541

แต่หากท่านนำ Query ดังกล่าว มาทำเป็น Crosstab query อีกที โดยที่ Design view ของ Crosstab query เป็นดังนี้

Design view ของ Crosstab query

หลังจาก run Crosstab query แล้วจะเห็นว่ามี message box แจ้งว่า ไม่รู้จัก parameter ดังรูป

message box แจ้งว่า ไม่รู้จัก parameter

วิธีการแก้ไข คือ ให้ลบ parameter ออกจาก select query ออกไป แล้วนำ parameter ดังกล่าวมาใส่ที่ Crosstab query แทน โดยเพิ่มฟิลด์ที่จะใส่ค่า parameter หลังจากนั้น กำหนด Total ให้เป็น Where และสิ่งสำคัญที่ต้องกำหนดเพิ่มเติม คือ กำหนดค่า Parameter และ Data Type ที่หน้าต่าง Query Parameters ดังรูป

วิธีการแก้ไข

หลังจากนั้น run Crosstab query ดูอีกครั้ง จะพบว่ามี InputBox แสดงขึ้นมาเพื่อสอบถาม Parameter ดังรูป

un Crosstab query ดูอีกครั้ง จะพบว่ามี InputBox แสดงขึ้นมาเพื่อสอบถาม Parameter

และเมื่อเราใส่วันที่ 06-พ.ค.-2541 จะได้ผลสรุปออกมาใน Crosstab Query ดังรูป

เมื่อเราใส่วันที่ 06-พ.ค.-2541 จะได้ผลสรุปออกมาใน Crosstab Query

จากผลลัพธ์ที่ได้จะเห็นว่าไม่มี Field OrderDate ทั้งนี้เนื่องจากเราต้องการทราบว่า เราขายสินค้าให้บริษัทไหนบ้างในวันที่สั่งซื้อนั้น ๆ แต่ไม่ได้ต้องการวันที่นั้นๆ ในผลลัพธ์ นั่นคือเหตุผลว่า ที่ Total เราจึงเลือก Where แทนที่จะเลือก Group By หากใครกำลังประสบปัญหา ว่า Crosstab Query ไม่รู้จัก parameter กันอยู่ ก็คงจะแก้ปัญหาได้แล้วนะคะ