กระทู้เก่าบอร์ด อ.สุภาพ ไชยา
305 5
URL.หัวข้อ /
URL
ช่วยอธิบายฟังก์ชั่น Nz หน่อยครับ
ตัวอย่าง
If Nz(DCount("payedlist_id", "payedlist_st"), 0) = 0 Then
0 ตัวแรกหมายถึงอะไรครับ
=0 คือเปรียบเทียบกับอะไรครับ
5 Reply in this Topic. Dispaly 1 pages and you are on page number 1
1 @R02803
ใช่ Nz คืออะไร ผมก้อไม่ทราบเหมือนกัน
2 @R02804
Nz() เป็นฟังก์ชันที่แปลงค่า Null ให้เป็น 0 หรือ "" แล้วแต่ว่าค่าที่เรากำลังทำงานด้วย
จะมีประโยชน์ในการป้องกันการ Error ของโค้ดเรา
0 ตัวแรกหมายถึง ถ้า DCount("payedlist_id", "payedlist_st") ได้ค่าเป็น Null คือไม่มีข้อมูลใดๆ ในตาราง payedlist_st จะแปลงค่า Null ให้เป็น 0
=0 คือเปรียบเทียบกับ ค่าที่ได้จาก Nz(DCount("payedlist_id", "payedlist_st"), 0)
ซึ่งมีข้อมูลอย่างน้อย 1 รายการ จะได้
If 1 = 0 Then
จึงไม่จริง
ผมอาจจะอธิบายไม่ชัดเจนเท่าไรนัก
ความจริง DCount() จะให้ค่าคืนเป็น 0 ถ้าไม่มีข้อมูลอะไรเลย จึงไม่จำเป็นจะต้องใช้ Nz() มาช่วยตรงนี้ก็ได้ครับ
ตัวที่จะต้องใช้คือ DLookup() ซึ่งจะต้องใช้ Nz() มาช่วย ตัวอย่างเช่น
ถ้าฟีลด์เป้าหมายเป็น Text จะใช้อย่างนี้ครับ
If Nz(DLookup("MyName", "Table1","MyName='สุภาพ'"), "") = "" Then
ถ้าฟีลด์เป้าหมายเป็น Number จะใช้อย่างนี้ครับ
If Nz(DLookup("MyID", "Table1","MyName='สุภาพ'"), 0) = 0 Then
จะมีประโยชน์ในการป้องกันการ Error ของโค้ดเรา
0 ตัวแรกหมายถึง ถ้า DCount("payedlist_id", "payedlist_st") ได้ค่าเป็น Null คือไม่มีข้อมูลใดๆ ในตาราง payedlist_st จะแปลงค่า Null ให้เป็น 0
=0 คือเปรียบเทียบกับ ค่าที่ได้จาก Nz(DCount("payedlist_id", "payedlist_st"), 0)
ซึ่งมีข้อมูลอย่างน้อย 1 รายการ จะได้
If 1 = 0 Then
จึงไม่จริง
ผมอาจจะอธิบายไม่ชัดเจนเท่าไรนัก
ความจริง DCount() จะให้ค่าคืนเป็น 0 ถ้าไม่มีข้อมูลอะไรเลย จึงไม่จำเป็นจะต้องใช้ Nz() มาช่วยตรงนี้ก็ได้ครับ
ตัวที่จะต้องใช้คือ DLookup() ซึ่งจะต้องใช้ Nz() มาช่วย ตัวอย่างเช่น
ถ้าฟีลด์เป้าหมายเป็น Text จะใช้อย่างนี้ครับ
If Nz(DLookup("MyName", "Table1","MyName='สุภาพ'"), "") = "" Then
ถ้าฟีลด์เป้าหมายเป็น Number จะใช้อย่างนี้ครับ
If Nz(DLookup("MyID", "Table1","MyName='สุภาพ'"), 0) = 0 Then
3 @R02811
Cool
เจ๋ง
เจ๋ง
4 @R02818
ขอบคุณครับกระจ่างแล้ว
5 @R02827
แบบนี้ชัดเจนที่สุดแล้วครับ อาจารย์
Time: 0.1374s