บทที่ 5 การออกแบบแบบสอบถาม
5.1 ความหมายของแบบสอบถาม
           แบบสอบถาม หมายถึง ส่วนของการนำข้อมูลจากตาราง มาออกแบบตารางใหม่ ให้สามารถนำข้อมูลมาบางส่วน (เฉพาะเขตข้อมูลหรือเฉพาะรายการที่ต้องการ) หรือทั้งหมดขึ้นอยู่กับความต้องการของผู้ใช้ หรือนำข้อมูลเพื่อการประมวลผลในรูปการคำนวณ การสรุปผลข้อมูล เช่น การหาค่าผลรวม ค่าเฉลี่ย ค่าสูงสุด/ต่ำสุด การนับจำนวน ฯลฯ หรือการประมวลผลในรูปการกระทำตามคำสั่ง เช่น การบันทึกข้อมูลจากการประมวลผล การเพิ่มข้อมูลจากตารางอื่น การสร้างตารางใหม่ที่เกิดจากการออกแบบบนแบบสอบถาม การลบข้อมูลทั้งหมดหรือลบข้อมูลตามเงื่อนไขที่กำหนด และการสรุปผลข้อมูลที่มีการจำแนก 2 ทาง และที่สำคัญตารางแบบสอบถามจะช่วยนำตารางที่มีความสัมพันธ์มาทำงานร่วมกันบนตารางแบบสอบถาม ดังนั้นจึงถือว่าแบบสอบถามเป็นส่วนสำคัญในการประมวลผลข้อมูลทั้งหมด
           5.2 การออกแบบแบบสอบถาม
           การออกแบบแบบสอบถาม สามารถออกแบบได้หลายรูปแบบ ขึ้นอยู่กับความต้องการของผู้ออกแบบว่าต้องการออกแบบด้วยตนเองหรือต้องการตัวช่วยสร้าง ขณะที่ออกแบบ โดยมีขั้นตอนการออกแบบดังนี้
           ขั้นตอนการออกแบบ
-  เลือกเมนู สร้าง
-  เลือกรูปแบบการสร้างแบบสอบถามที่ Ribbon แบบสอบถาม ดังรูปตารางที่ 5.1
        จากรูปที่ 5.1 ทำการเลือกรูปแบบการสร้างแบบสอบถาม ซึ่งสามารถกำหนดได้ 4 รูปแบบดังต่อไปนี้
               5.2.1 ตัวช่วยสร้างแบบสอบถาม หมายถึง ต้องการตัวช่วยเหลือในการสร้างแบบสอบถาม ประกอบด้วย
                       1) ตัวช่วยสร้างแบบสอบถามอย่างง่าย เพื่อแสดงข้อมูลใน Table รูปแบบต่างๆ หรืออีกลักษณะหนึ่ง เพื่อแสดงค่าสรุปผล ข้อมูลใน Table เช่น การหาค่าผลรวมค่าเฉลี่ย ค่าสูงสุด/ต่ำสุด โดยจัดกลุ่ม ตามเขตข้อมูลที่กำหนด
                       2) ตัวช่วยสร้างแบบสอบถามแบบตาราง หมายถึง การสร้างตารางแจกแจงข้อมูลที่มีการจำแนกในแนวนอนและแนวตั้ง เพื่อสรุปค่าข้อมูลในรูปฟังก์ชันต่างๆ
                       3) ตัวช่วยสร้างแบบสอบถามเพื่อค้นหารายการช้ำ หมายถึง การสร้างตารางแสดงข้อมูลเพื่อค้นหาข้อมูลที่มีค่าเขตข้อมูลที่เลือกซ้ำกัน เช่น แสดงรายชื่อพนักงานที่มีอยู่จังหวัดเดียวกัน
                       4) ตัวช่วยสร้างแบบสอบถามการค้นหาข้อมูลไม่ตรงกัน หมายถึง การสร้างตารางแสดงข้อมูลในตารางหนึ่งที่ไม่มีข้อมูลสัมพันธ์กันในอีกตารางหนึ่ง
5.2.2 ออกแบบแบบสอบถาม หมายถึง ต้องการออกแบบแบบสอบถาม ด้วยตนเอง ซึ่งในหน่วยนี้จะกล่าวเฉพาะกรณีสร้างแบบสอบถามแบบ Query Design เท่านั้นโดยมีขั้นตอนดังต่อไปนี้
-  เลือก ชื่อ ตาราง/แบบสอบถาม ที่ต้องการ แล้วกดปุ่มเพิ่ม (หรือดับเบิลคลิกชื่อตาราง/แบบสอบถาม ที่ต้องการ)
                 -  เมื่อได้ตารางที่ต้องการแล้วเลือก ปิด จะปรากฏเมนูการออกแบบแบบสอบถาม ดังรูปที่ 5.2
           การออกแบบแบบสอบถาม แบ่งได้ 5 ลักษณะ คือ
1)      เขตข้อมูล
2)      ตาราง
3)      เรียงลำดับ
4)      แสดง
5)      เกณฑ์
           1) เขตข้อมูล หมายถึง การเลือกเขตข้อมูลจากตาราง/แบบสอบถาม ที่นำออกแบบโดยมีขั้นตอนการออกแบบและควบคุมเขตข้อมูลบนตารางออกแบบดังต่อไปนี้
               การเลือกเขตข้อมูล หมายถึง การนำเขตข้อมูลจากตารางมาออกแบบบนตาราง Queries มีหลายวิธีในการเลือกดังต่อไปนี้
               วิธีที่ 1 ดับเบิลคลิกชื่อเขตข้อมูลจากตารางที่เลือก
               วิธีที่ 2 คลิกชื่อเขตข้อมูลที่ต้องการจากตารางลากมาวางบนตาราง Query
               วิธีที่ 3 คลิกที่เขตข้อมูลว่างบนตารางออกแบบ จะปรากฏปุ่มลูกศรเลือกชื่อเขตข้อมูลด้านขวาคลิกที่ปุ่มดังกล่าวเพื่อเลือกชื่อเขตข้อมูลที่ต้องการ
           การลบเขตข้อมูล หมายถึง การลบเขตข้อมูลที่ไม่ต้องการออกจากตารางออกแบบ
           ขั้นตอนการลบเขตข้อมูล
-  คลุมเขตข้อมูลที่ต้องการลบ
-  กดปุ่ม delete บนคีย์บอร์ด
            การแทรกเขตข้อมูล หมายถึง การเพิ่มเขตข้อมูลใหม่แทรกระหว่างเขตข้อมูลที่มีอยู่แล้วบนตารางออกแบบ
           ขั้นตอนการแทรกเขตข้อมูล สามารถแทรกเขตข้อมูลได้ 2 วิธี ดังต่อไปนี้
           ขั้นที่ 1 โดยการคลิกเขตข้อมูลใหม่จาก Table มาวางบนตารางออกแบบระหว่างเขตข้อมูลที่ต้องการ
           ขั้นที่ 2 คลุมเขตข้อมูลที่ต้องการแทรก เลือกเมนู แทรก เลือก คอลัมน์ จะได้เขตข้อมูลว่าง และจึงนำเขตข้อมูลใหม่มาวาง
มุมมองแบบสอบถาม หมายถึง มุมมองขณะที่กำลังทำงานอยู่บนตาราง Queries เช่น การออกแบบ Query การแก้ไข Query ฯลฯ โดยสามารถแบ่งได้ 3 มุมมอง คือ
-        มุมมองออกแบบ หมายถึง มุมมองที่จะทำให้ออกแบบ หรือแก้ไขรูปแบบ Query  ที่ต้องการออกแบบ
-       มุมมองแผ่นข้อมูล หมายถึง มุมมองที่จะแสดงข้อมูลหรือตารางตามรูปแบบที่ได้กำหนดไว้ในมุมมองออกแบบ
-       มุมมอง SQL หมายถึง มุมมองที่อยู่ในรูปคำสั่งภาษาโครงสร้างหรือภาษา SQL
           การเลือกมุมมองขณะออกแบบ สามารถเลือกได้ 2 วิธีคือ
               วิธีที่ 1 คลิกปุ่ม View บนแถบเครื่องมือ เลือกมุมมองที่ต้องการ
               วิธีที่ 2 เลือกเมนู View เลือกมุมมองที่ต้องการ
 
           2) ตาราง หมายถึง ชื่อตารางของเขตข้อมูลที่เลือก จะระบุมาพร้อมกับชื่อเขตข้อมูล เพื่อให้รู้ว่ามาจากตารางชื่ออะไร
           3) จัดเรียง หมายถึง การจัดเรียงลำดับข้อมูลตามเขตข้อมูลที่เลือก เมื่อต้องการจัดเรียงเขตข้อมูลที่ต้องการ ให้คลิกที่บรรทัด จัดเรียง ของเขตข้อมูลที่เลือก จะปรากฏปุ่มตัวเลือกทางด้านขวาดังรูปที่ 5.7 โดยแต่ละตัวเลือกมีความหมายดังต่อไปนี้
ไม่เรียงลำดับ เมื่อไม่ต้องการจัดเรียง หรือยกเลิกการจัดเรียง
จากน้อยไปหามาก เมื่อต้องการจัดเรียงจากน้อยไปหามาก
จากมากไปหาน้อย เมื่อต้องการจัดเรียงจากมากไปหาน้อย
4) แสดง หมายถึง การซ่อน หรือแสดงเขตข้อมูลที่เลือก
เมื่อต้องการซ่อน เลือก  
                  เมื่อต้องการแสดง เลือก  
    
5) เกณฑ์ เมื่อเราต้องเลือกข้อมูลบางรายการ จะต้องสร้างเงื่อนไขเพื่อกำหนดข้อมูลที่ต้องการ โดยมีเครื่องมือในการสร้างเงื่อนไขดังต่อไปนี้
    สัญลักษณ์ที่นำมาสร้างเงื่อนไข
           “ข้อความ”         หมายถึง ข้อความ ที่นำมาเปรียบเทียบข้อมูลในการสร้างเงื่อนไข
           #dd/mm/yy#     หมายถึง วันที่ ที่นำมาเปรียบเทียบข้อมูลในการสร้างเงื่อนไข
           ตัวเลข               หมายถึง ตัวเลข ที่นำมาเปรียบเทียบข้อมูลในการสร้างเงื่อนไข
           ?                     หมายถึง ตัวอักขระ 1 ตัวมีค่าเป็นอะไรก็ได้
           *                     หมายถึง ตัวอักขระ 1 ตัว หรือมากกว่า 1 ตัว มีค่าเป็นอะไรก็ได้
           and                 หมายถึง ตัวเชื่อมเงื่อนไขที่ต้องการให้เป็นจริงทั้ง 2 เงื่อนไข
           or                   หมายถึง ตัวเชื่อมเงื่อนไขที่ต้องการให้เป็นจริงเงื่อนไขใดเงื่อนไขหนึ่ง
           not                  หมายถึง ตัวเชื่อมเงื่อนไขที่ต้องการให้ปฎิเสธเงื่อนไข หรือมีค่าตรงกันข้ามเงื่อนไขที่กำหนด
           between           หมายถึง การเปรียบเทียบที่มีค่าเป็นช่วง
                                           (รูปแบบ between ค่าเริ่มต้น and ค่าสุดท้าย)
          รูปแบบการกำหนดเงื่อนไขการกำหนดรูปแบบเงื่อนไขขึ้นอยู่กับชนิดของเขตข้อมูล ทำให้รูปแบบการสร้างเงื่อนไขเปลี่ยนแปลงตามรูปแบบต่อไปนี้
        กรณีที่ 3 เขตข้อมูลประเภท Date/Time การระบุวันที่/เวลาในการสร้างเงื่อนไขให้ระบุตามรูปแบบการบันทึกที่วินโดว์กำหนดมา เช่น รูปแบบวันที่ d/m/yy หรือ m/d/yy หรือรูปแบบเวลา h:m:ss
กรณีที่ 5 การสร้างเงื่อนไขด้วยพารามิเตอร์ หมายถึง การกำหนดพารามิเตอร์เพื่อติดต่อผู้ใช้โดยให้ผู้ใช้เป็นผู้ระบุตามความต้องการทางคีย์บอร์ดหรือแป้นพิมพ์
           รูปแบบพารามิเตอร์  [ข้อความอธิบาย]
           ตัวอย่างการกำหนดค่าพารามิเตอร์
เขตข้อมูล
Position
เกณฑ์
[ระบุตำแหน่งที่ต้องการ]
 
5.3 การสร้างเขตข้อมูลใหม่บน Query
           หมายถึง การกำหนดเขตข้อมูลใหม่บน Query ไม่ได้เกิดจากข้อมูลในตาราง หรือแบบสอบถาม แต่ให้แสดงค่าตามสูตรการกำหนดค่า หรือการคำนวณค่าที่ผู้ใช้ต้องการค่าผลลัพธ์โดยค่าที่ได้จะเกิดขึ้นเพียงชั่วคราวเมื่อมีการเรียกใช้ Query เท่านั้น ดังนั้นเมื่อปิดการทำงานาของ Query ค่าเหล่านั้นจะหายไปทันที รวมทั้งการสร้างเขตข้อมูลใหม่ที่เกิดจากการรวมเขตข้อมูล
               5.3.1 สร้างเขตข้อมูลใหม่ที่เกิดจากการคำนวณหรือกำหนดค่า หมายถึง การนำข้อมูลจากเขตข้อมูลที่เลือกจาก Table มาสร้างสูตรการคำนวณเพื่อให้ได้ผลลัพธ์ตามที่ผู้ใช้ต้องการ
               รูปแบบ
ชื่อเขตข้อมูล
ชื่อเขตข้อมูล : สูตรการคำนวณหรือการกำหนดค่า
ตาราง

           ตัวอย่าง  ต้องการกำหนดเขตข้อมูลใหม่ที่เกิดจากการสูตรการคำนวณตามเงื่อนไขต่อไปนี้
1)      คำนวณ tax (ภาษี/เดือน) โดยคิด 5ของ salary (เงินเดือน)
2)      คำนวณ income (รายได้สุทธิ) โดยคิดจาก เงินเดือน ภาษี/เดือน
ชื่อเขตข้อมูล
Sal
tax:[salary]*0.05
Income:[salary]-[tax]
ตาราง
Person



           หลังจากการกำหนดเขตข้อมูลใหม่ ถ้าต้องการกำหนดคุณสมบัติของเขตข้อมูลใหม่ ให้คลิกขวาที่เขตข้อมูลใหม่ เลือก คุณสมบัติ จะปรากฏเมนูแผ่นคุณสมบัติ ให้สามารถออกแบบเพิ่มเติมได้ และเลือก มุมมองแผ่นข้อมูล เพื่อดูผลการคำนวณบนตาราง
5.3.2 สร้างเขตข้อมูลใหม่ที่เกิดจากการรวมเขตข้อมูล หมายถึง การนำข้อมูลหมายเขตข้อมูลมารวมตัวกันให้เป็นเขตข้อมูลเดียวกัน จะช่วยลดขนาดพื้นที่ของตารางในการออกแบบ
           รูปแบบ
ชื่อเขตข้อมูลใหม่ : [ชื่อเขตข้อมูล] & [ชื่อเขตข้อมูล] &
                                                                 “ข้อความหรือสัญลักษณ์” & …………


           ตัวอย่าง  การนำเขตข้อมูล name และเขตข้อมูล surname มารวมกัน

ชื่อ สกุล : [name] & “       “& [surname]





                5.3.3 การสร้างเงื่อนไข ในการประมวลผลข้อมูลแต่ละรายการ ไม่จำเป็นจะต้องประมวลผลเหมือนกัน ขึ้นอยู่กับข้อมูลแต่ละรายการ ดังนั้นก่อนการประมวลผลจึงต้องมีการสร้างเงื่อนไขเพื่อทำการเปรียบเทียบข้อมูลกำหนดการประมวลผลแต่ละคำสั่ง
               รูปแบบการสร้างเงื่อนไข
               รูปแบบที่ 1  กรณี 1 เงื่อนไข
                ความหมาย
                          ถ้าเงื่อนไขที่กำหนด ถูกต้อง จะกระทำ คำสั่ง 1
                          ถ้าเงื่อนไขที่กำหนด ไม่ถูกต้อง จะกระทำ คำสั่ง 2
               ตัวอย่าง  ต้องการกำหนด ภาษี/เดือน ตามเงื่อนไขต่อไปนี้
                          ถ้าเงินเดือนมากกว่า 20,000 คิด 5ของเงินเดือน
                          ถ้าเงินเดือนไม่เกิน 20,000 คิด 2.5ของเงินเดือน

tax : IIF( [salary] > 20000 , [salary]*0.05 , [salary]*0.025)






ตัวอย่าง   คำนวณเงินโบนัส ให้กับพนักงานตามเงื่อนไขต่อไปนี้
                          ตำแหน่ง บัญชี ได้โบนัส 5 เท่าของเงินเดือน
                          ตำแหน่ง อื่นๆ ได้โบนัส 3 เท่าของเงินเดือน

bonus : IIF( [position]= “บัญชี” , [salary]*5 , [salary]*3)





รูปแบบที่ 2  กรณีหลายเงื่อนไข
ความหมาย
                          ถ้าเงื่อนไข 1 ที่กำหนด ถูกต้อง จะกระทำ คำสั่ง 1
                          ถ้าเงื่อนไข 2 ที่กำหนด ถูกต้อง จะกระทำ คำสั่ง 2
                          ถ้าเงื่อนไขทั้ง 2 ไม่ถูกต้อง จะกระทำ คำสั่ง 3
           ตัวอย่าง      ต้องการกำหนด ภาษี/เดือน ตามเงื่อนไขต่อไปนี้
                          ถ้าเงินเดือนมากกว่า 20,000 คิด 5.0ของเงินเดือน
                          ถ้าเงินเดือน5,001 - 20,000 คิด 2.5.0ของเงินเดือน
                          ถ้าเงินเดือนไม่เกิน 5,000 ไม่ต้องคิดภาษี

tax : IIF( [salary] > 20000 , [sal]*0.05
                                            IIF([salary]>500 , [salary]*0.025 ,0))




           

ตัวอย่าง      คำนวณเงินโบนัส                      ให้กับพนักงานตามเงื่อนไขต่อไปนี้
                          ตำแหน่ง            บัญชี              ได้โบนัส 6 เท่าของเงินเดือน
                          ตำแหน่ง            การเงิน           ได้โบนัส 4 เท่าของเงินเดือน
                          ตำแหน่ง            อื่นๆ              ได้โบนัส 2 เท่าของเงินเดือน

           bonus : IIF( [position]= “บัญชี” , [sal]*0.05 ,
                  IIF([salary]>5000 , [salary]*0.025 , 0))






               5.3.4 การคำนวณเกี่ยวกับวันที่/เวลา
                             ในการคำนวณข้อมูลเกี่ยวกับวันที่/เวลา ที่มีรูปแบบการบันทึกเดียวกันคือ d/m/yy หรือ m/d/yy สำหรับรูปแบบวันที่ และ h:m:ss สำหรับรูปแบบประเภทเวลา ดังนั้นการคำนวณจำเป็นจะต้องแยกข้อมูลประเภทนี้ออกเป็นหน่วยต่างๆ เช่น หน่วยเป็น ปี เดือน วัน หรือ ชั่วโมง นาที วินาที จึงต้องมีฟังก์ชันเกี่ยวกับวันที่/เวลา เข้ามาเกี่ยวข้องในการคำนวณ จึงขอแนะนำฟังก์ชันเกี่ยวกับวันที่และเวลา
1)    การคำนวณวันที่หน่วยเป็นจำนวนปี
1.1   รูปแบบการคำนวณทั่วไป

year(วันที่) – year(วันที่)





           ตัวอย่าง ต้องการคำนวณอายุ จากวันเกิด โดยคำนวณ ณ วันที่ปัจจุบัน

Age : year(now())-year([born])





1.2   รูปแบบการคำนวณ โดยการตรวจสอบเดือนก่อน

ถ้า month(วันที่ปัจจุบัน)<month(วันที่)
year(วันที่)-year(วันที่)-1
ถ้า month(วันที่ปัจจุบัน)>=month(วันที่)
year(วันที่)-year(วันที่)







           
        ตัวอย่าง การคำนวณอายุ (age) จากวันเกิด (born)

age : iif(month(now())<month([born]),
                             year(now())-year([born])-1,
                                                year(now())-year([born])






           
        2) การคำนวณวันที่หน่วยเป็นจำนวนเดือน หลักการคำนวณ ในกรณีที่เดือนปัจจุบันมีค่าน้อยกว่าเดือนที่คำนวณจะยืมหน่วยปีมา 1 ปีมีค่า 12 เดือนมาบวกกับเดือนปัจจุบันก่อน
           รูปแบบการคำนวณ

ถ้า month(ปัจจุบัน) <month (วันที่)
                        Month(วันที่ปัจจุบัน) + 12 – month(วันที่
ถ้า month(ปัจจุบัน) >=month (วันที่)
                        Month(วันที่ปัจจุบัน)– month(วันที่








           


            ตัวอย่าง การคำนวณอายุ (age) หน่วยเป็นจำนวนเดือนจากวันเกิด (born)

age : iif(month(now())<month([born]),
                             year(now())+12-month([born]),
                                                month(now())-month([born])






           
        3) การคำนวณวันที่หน่วยเป็นจำนวนวัน หมายถึง ผลต่างของวันที่ จะได้ค่าเป็นตัวเลขที่จะให้ค่าผลต่างของจำนวนวันได้
วันที่ วันที่

           รูปแบบการคำนวณ
            ตัวอย่าง ต้องการคำนวณจำนวนวันที่เช่า จากวันที่เข้าพัก และวันที่ออกจากที่พัก

Dayrent : [dayout]-[dayin]




          
 4) การคำนวณเวลาหน่วยเป็นเวลา หมายถึง ผลต่างของเวลา จะให้ค่าผลต่างของชั่วโมง ผลต่างของนาที และผลต่างของวินาที แต่จะให้ค่าในรูปของเวลา
เวลา เวลา

           รูปแบบการคำนวณ
            ตัวอย่าง ต้องการทราบจำนวนเวลาที่เช่าเครื่องพิมพ์ดีด (rent_time) จากเวลาเริ่มเช่า (begin_time) และเวลาเลิกเช่า (end_time)

Rent_time : [end_time]-[begin_time]




           
5) การคำนวณเวลาหน่วยเป็นจำนวนชั่วโมง จะให้ค่าเป็นผลต่างเวลาเป็นจำนวนชั่วโมงในรูปตัวเลข
           รูปแบบการคำนวณ

hour(เวลา) – hour(เวลา




           
ตัวอย่าง ต้องการทราบจำนวนชั่วโมงที่เช่าเครื่องพิมพ์ดีด จากเวลาเริ่มเช่า และเวลาเลิกเช่า

Rent_hour : hour[end_time]-hour[begin_time]




           
6) การคำนวณจากตารางความสัมพันธ์ ในการประมวลผลที่ต้องอาศัยข้อมูลจากตารางความสัมพันธ์ จะต้องสร้างเส้นเชื่อมความสัมพันธ์ ซึ่งสามารถสร้างได้ 2 ทาง คือ การสร้างความสัมพันธ์ด้วยคำสั่ง Relationship (ในเมนู Tools) หรือสร้างบนตาราง Query
           ตัวอย่าง ต้องการสร้างตารางเพื่อบันทึกการจำหน่ายสินค้าประจำวันโดยมีรายละเอียดดังต่อไปนี้

ป้อนข้อมูลตัวอย่างในตาราง goods จำนวน 10 รายการ
            สร้างความสัมพันธ์ระหว่างตาราง โดยกำหนดเขตข้อมูล g_code เป็นตัวเชื่อม
            การออกแบบตารางแบบสอบถาม เพื่อคำนวณราคารวม ภาษีมูลค่าเพิ่ม รวมสุทธิ จากตาราง GOODS และ ตาราง sale_goods
                          ราคารวม : ราคา/หน่วย x จำนวน
                          ภาษีมูลค่าเพิ่ม : ราคารวม x 0.07
                          รวมสุทธิ : ราคารวม + ภาษีมูลค่าเพิ่ม


ไม่มีความคิดเห็น:

แสดงความคิดเห็น