หลายๆ ครั้ง เรามักพบปัญหา การนำค่าใน FIELD มาคำนวณ แล้วพบ ว่า ค่าที่ได้เป็น ว่างๆ ปัญหาหลักส่วนหนึ่วคือ ค่าใน FIELD เป็น ว่างๆ หรือ NULL ตย เช่น เราตั้งค่า AMOUNT + VAT ไว้ ในรายงาน หรือ QUERY ถ้า RECORD ใด ที่ VAT เป็น ช่องว่าง จะทำให้ AMOUNT+VAT = NULL ไปด้วย
วิธีแก้ พื้นๆ ก็ไปไล่ UPDATE ค่าให้เป็น 0 , ผมแนะนำการทำ FUNCTION มาช่วย โดยให้เก็บ FUNCTION นี้ไว้ใน MODULE ผมเรียกมันว่า ntz
FUNCTION NTZ(vain)
if isnull(varin) then
ntz=0
else
ntz =varin
end if
END FUNCTION
การนำ ไปใช้ ก็เพียงแต่ ใส่ FUNCTION ครอบ ตยเช่น =AMOUNT+VAT ก็ใส่เป็น =ntz(AMOUNT) + ntz(VAT) เรานำไปใช้ได้ ทั้งใน QUERY REPORT และ FORM
เรานำ FUNCTION ดังกล่าว ไป ดัดแปลง เพื่อให้เทียบเคียงกับ FUNCTION NVL แบบ ORACLE ได้ เช่นกัน โดยการปรับเป็น FUNCTION ดังนี้
FUNCTION NVL(vain, varnull)
if isnull(varin) then
ntz=varnull
else
ntz =varin
end if
END FUNCTION
แต่ผมนิยมใช้ NTZ เพราะมี PARAMETER เดียวโดดๆ นำไปครอบสูตรแล้วได้ผลเลย ส่วน NTZ ต้องพิมพ์เพิ่ม อีก 2 3 ตัวครับ
ไม่มีความคิดเห็น:
แสดงความคิดเห็น