การใช้ฟังก์ชัน NZ ใน Crosstab Query ของ Microsoft Access

ท่านใดเคยใช้ Query ใน Microsoft Access จะพบว่ามีการแสดงค่าว่าง (Null) ในกรณีที่ไม่มีข้อมูลในคอลัมน์นั้น ๆ โดยหากจะต้องการแปลงข้อมูลที่เป็นค่าว่างไปเป็นข้อมูลที่ต้องการนั้น เราสามารถใช้ฟังชัน NZ ได้
 การใช้ฟังก์ชัน NZ  ใน Crosstab Query ของ Microsoft Access
ทักษะ (ระบุได้หลายทักษะ)

การใช้ฟังก์ชัน NZ  ใน Crosstab Query ของ Microsoft Access

หากท่านใดเคยใช้ Crosstab Query ใน Microsoft Access จะพบว่ามีการแสดงค่าว่าง (Null) ในกรณีที่ไม่มีข้อมูลในคอลัมน์นั้น ๆ
ยกตัวอย่างเช่น ต้องการสรุปว่า  ขายสินค้าให้ลูกค้าบริษัทใดเป็นยอดเงินเท่าใด ดังรูป

Crosstab Query ที่ไม่ได้สินค้าที่ไม่มียอดขาย จะแสดงเป็นช่องว่าง หรือ Null

จะเห็นได้ว่ามีหลายรายการสินค้าที่ลูกค้าไม่ได้ซื้อ ทำให้มีค่าว่าง (Null) เกิดขึ้นเช่น   บริษัท Alfreds Futterkiste ไม่ซื้อ สินค้า Chang  เป็นต้น 
ซึ่งหากเราต้องการให้เป็นค่า 0 แทนค่าว่าง (Null) นั้น เราสามารถเข้าไปแก้ไขโดยใส่ ฟังก์ชัน NZ  ซึ่งเป็นการแปลงค่า Null ให้เป็นค่าต่างๆ ที่เราต้องการ ทั้งนี้ สามารถเข้าไปใส่ฟังก์ชันดังกล่าวได้ 2 ที่

1. SQL View

การกำหนด ฟังก์ชัน Nz ด้วย SQL View

2. Expression Builder

การกำหนด ฟังก์ชัน Nz ด้วย Expression Builder

ผลลัพธ์ที่ได้เป็นดังรูป

การกำหนด ฟังก์ชัน Nz เพื่อให้แสดงเป็นเลข 0

จากฟังก์ชัน NZ ตามตัวอย่างนั้น อธิบายได้ดังนี้ค่ะ
NZ(Sum(QOrders.Amount),0)  แปลได้ว่า
ถ้า ผลรวมของฟิลด์ Amount ใน QOrders เป็นค่า Null ให้แสดงค่า 0

แต่ถ้าเราต้องการให้แสดงข้อความว่า N/A ก็สามารถทำได้
โดยเขียนฟังก์ชันเป็น  NZ(Sum(QOrders.Amount),"N/A")

ทั้งนี้ N/A ต้องอยู่ภายใต้เครื่องหมาย double quote (") นั้น
เนื่องจาก N/A เป็น Constant ประเภท Text ค่ะ

การกำหนด ฟังก์ชัน Nz ด้วย Expression Builder

ผลลัพธ์ที่ได้

การกำหนด ฟังก์ชัน Nz โดยให้แสดงเป็น N/A

แต่จากผลลัพธ์ที่ได้หลังจากใช้ฟังก์ชัน NZ แล้ว
จะเห็นว่า รูปแบบที่แสดงนั้นเพี้ยนไปจาก Query แรกที่ยังไม่ได้เปลี่ยนจากค่า Null เป็น 0  หรือ  N/A
นั่นคือ ทศนิยมไม่แน่นอน รวมถึงไม่มีเครื่องหมาย $ ด้วย
 
วิธีการแก้ไข คือ ใช้ฟังก์ชัน Format ช่วยค่ะดังแสดงในรูป

ใช้ฟังก์ชัน Format ช่วยในการจัดรูปแบบในการแสดงผล

ผลลัพธ์ที่ได้

รูปแบบหลังทำการจัดรูปแบบเรียบร้อยแล้ว

ส่วนการใช้งานฟังก์ชัน Format นั้น เป็นการกำหนดให้แสดงรูปแบบตามที่ต้องการค่ะ

จากตัวอย่าง Format(Nz(Sum([QOrders].[Amount]),0),"$#,##0.00")
เป็นการกำหนดให้รูปแบบของค่าที่ได้จาก Nz(Sum([QOrders].[Amount]),0)  เป็นรูปแบบ $#,##0.00

โดยที่  $#,##0.00 นั้นจะต้องอยู่ภายใต้เครื่องหมาย double quote (") ค่ะ

บทความนี้ต้องการจะแสดงให้เห็นว่า เราสามารถแก้ไขการแสดงผลของ Crosstab Query ได้ค่ะ

นั่นหมายถึงถ้าเรารู้จักฟังก์ชันต่างๆ เพิ่มขึ้น จะสามารถดัดแปลงแก้ไขได้ที่ SQL View หรือ Expression Builder ดังที่กล่าวมาแล้วค่ะ