ถ้าจะเพิ่มฟังก์ชั่น Nz ใน Query ต้องเพิ่มยังไงคะ



0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

29 ส.ค. 61 , 09:08:48
อ่าน 768 ครั้ง

MyDDT

ราคาขาย: Val(DSum("[Que_Pro] * [Salepre_Pro]","tbl_OrderItemPro","ID_Pro=" & [Qry_TotalOut].[ID_Pro]))

จากนิพจน์ดังกล่าว ถ้าจะเพิ่มฟังก์ชั่น Nz ลงไป ต้องเพิ่มอย่างไรคะ

 

30 ส.ค. 61 , 10:29:14
ตอบกลับ #1

TTT

ก็ต้องดูว่าค่าในฟิลด์ไหนที่อาจจะเป็นค่า Null ได้ในฐานข้อมูลเรา แล้วทำให้การคำนวณอาจคำนวณค่ากับฟิลด์อื่นที่มีค่าไม่ได้ก็ให้ใส่ Nz() เข้าไปเพื่อทำให้มันสามารถคำนวณค่าได้ เช่นหากถ้าเป็นไปได้ทุกฟิลด์ในฐานข้อมูลเราจะเป็นค่า Null ได้ทั้งหมด เราก็ต้องใส่ทั้งหมดประมาณนี้ครับ

Val(DSum("Nz([Que_Pro]) * Nz([Salepre_Pro])","tbl_OrderItemPro","Nz(ID_Pro)=" & Nz([Qry_TotalOut].[ID_Pro])))

ซึ่งมันแล้วแต่การออกแบบฐานข้อมูลว่าเรากำหนดให้มันสามารถเกิดค่า Null ได้หรือไม่ในฟิลด์ครับ ปรับใช้ดู
ฐานข้อมูลเป็นเรื่องใกล้ตัว ใครๆก็ทำฐานข้อมูลเองได้นะครับhttp://www.youtube.com/c/AccessCreator link
 
โพสต์นี้ได้รับคำขอบคุณจาก: MyDDT, ชีวิต ไม่สิ้นหวัง

31 ส.ค. 61 , 10:39:21
ตอบกลับ #2

MyDDT

ทำไงก็ไม่ยอมเป็น 0 ใช้ทั้ง IIf IsNull , Nz ก็ไม่ได้ เกี่ยวกับเวอร์ชั่น Access มั้ยคะ

 
โพสต์นี้ได้รับคำขอบคุณจาก: ชีวิต ไม่สิ้นหวัง

31 ส.ค. 61 , 11:30:58
ตอบกลับ #3

TTT

ถ้าจะกำหนดให้ค่า Null เป็น 0 ก็ใช้
Val(Nz(DSum("[Que_Pro] * [Salepre_Pro]","tbl_OrderItemPro","ID_Pro=" & [Qry_TotalOut].[ID_Pro]), 0))
ฐานข้อมูลเป็นเรื่องใกล้ตัว ใครๆก็ทำฐานข้อมูลเองได้นะครับhttp://www.youtube.com/c/AccessCreator link
 
โพสต์นี้ได้รับคำขอบคุณจาก: MyDDT, ชีวิต ไม่สิ้นหวัง

01 ก.ย. 61 , 08:55:33
ตอบกลับ #4

MyDDT

อาจารย์ จริงๆอันนี้หนูทำตามในคลิปของอาจารย์อ่ะค่ะ แล้วมันติดปัญหานี้อยู่ ยังไงอาจารย์ช่วยไปไขข้อสงสัยในยูทูปให้หน่อยนะคะ คลิปอาจารย์เป็นประโยชน์ต่อหนูมาก แต่ตอนนี้หนูติดอยู่แค่จุดนั้นจุดเดียวเลยจริงๆค่ะ จะร้องไห้ละแก้ไม่ได้ (ที่อาจารย์บอกมาตามเม้นบน หนูลองแก้ไขแล้วนะคะ มันฟ้องว่า นิพจน์ FIFO ไม่ได้กำหนด อะไรซักอย่างนี้แหละค่ะ)

 
โพสต์นี้ได้รับคำขอบคุณจาก: ชีวิต ไม่สิ้นหวัง

01 ก.ย. 61 , 11:50:12
ตอบกลับ #5

nonc31

=nz(DSum("money","q_income","month([date])= month([income_date])"))+0
น่าจะ + 0 ด้วยนะ

และ ควรตรวจสอบ ชื่อฟิลด์ ชื่อตาราง  และ ตำแหน่งเครื่องหมาย "  ว่ามันอยู่ในตำแหน่งที่ถูกหรือไม่


 

16 ต.ค. 61 , 21:52:49
ตอบกลับ #6

ชีวิต ไม่สิ้นหวัง

  • สมาชิกไท.Access
  • กระทู้: 3

    • ดูรายละเอียด

ในหน้า คิวรี่ผมต้องใส่ตรงไหนครับ ขอดูตัวอย่างได้มั้ย

 

17 ต.ค. 61 , 08:26:42
ตอบกลับ #7

ปิ่นณรงค์

ในหน้า คิวรี่ผมต้องใส่ตรงไหนครับ ขอดูตัวอย่างได้มั้ย

Nz ( variant, [ value_if_null ] )

เป็นการกำหนดให้ Nz แปลงค่าจากตัวแปร ถ้าค่านั้นว่าง หรือ Null ก็ให้แปลงค่านั้นเป็นจำนวนตามที่เรากำหนดครับ
เช่น
Nz(Field1,5) + Nz(Field2,5) สมมุติใน Field1 = Null และ Field2 = 2 ผลที่ได้ก็คือ 7 เป็นต้น
หรือจะแปลงค่าว่างหรือ Null เป็นข้อความก็ได้เหมือนกันคับ


แต่โดยปกติการนำไปใช้ที่เจอบ่อยๆก็คือการใช้ในการแปลงค่า Null เป็น 0 กันซะส่วนใหญ่ครับ และจำเป็นต้องใช้ถ้าท่าน สร้างการคำนวนบน Form เพราะถ้า textbox ที่ท่านใช้คำนวนนั้นเป็นค่าว่าง มันจะแสดง Error ขึ้นมาทันที เพราะเหตุนี้ก็เลยนิยมใช้ Nz ในการดักจับ Error พวกนี้ไว้ด้วยครับ

การใส่ Nz คือการกำหนด ให้ถ้า Field ใดๆ หรือ Control ใดๆ บน Form ที่มีค่าว่างหรือ Null ให้แปลงค่าเป็น 0 เพื่อไม่ให้เกิดการผิดพลาดในการคำนวน
การใส่ Nz ตัวอย่างในคิวรี่ถ้าต้องการ คำนวนโดยใช้ฟิวใด ก็ไปอ้างอิงเอาตรงนั้นเช่น
:love: :grin:
 
โพสต์นี้ได้รับคำขอบคุณจาก: ชีวิต ไม่สิ้นหวัง


บอร์ดเรียนรู้ Access สำหรับคนไทย