ข้ามไปยังเนื้อหา
การใช้ฟังก์ชัน NZ ใน Crosstab Query ของ Microsoft Access

บทความโดย: 9Expert Team

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

Crosstab Query ใน Microsoft Access มักแสดงค่าว่าง (Null) เมื่อไม่มีข้อมูลในคอลัมน์นั้น เช่น ลูกค้าที่ไม่ได้ซื้อสินค้าบางรายการ บทความนี้สอนใช้ฟังก์ชัน NZ แปลง Null เป็น 0 หรือข้อความ N/A ได้ทั้งใน SQL View และ Expression Builder พร้อมใช้ฟังก์ชัน Format จัดรูปแบบทศนิยมและเครื่องหมาย $ ให้ตัวเลขดูเรียบร้อย อ่านง่าย และนำไปใช้งานจริงได้ทันที

9Expert Team 1 นาที

การใช้ฟังก์ชัน 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 ดังที่กล่าวมาแล้วค่ะ

หลักสูตรที่เกี่ยวข้อง

บทความที่เกี่ยวข้อง