เขียนโค้ดผิดหรือเปล่าครับ ทำไมมันไม่ขึ้น



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

09 ก.ค. 64 , 11:04:04
อ่าน 177 ครั้ง

001Jetnipit

 IIf(0>([ptts1_Exp]-Date())/28,"หมดอายุ","-"

เมื่อ ptts1_Exp-วันนี้ แล้วหาร 28 จะได้จำนวนเดือนคร่าวๆ
แล้วถ้ามันหมดอายุแล้วค่ามันจะติด - เลยเพิ่มโค้ดด้านบนใน Query ว่าถ้าติบลบในใส่คำว่า "หมดอายุ" ไปแทน แต่ลอง Run แล้วเหมือนมันไม่เข้าคำสั่งหรือเปล่าครับ ไม่ได้อะไรเปลี่ยนเลย

Code :
IIf([ptts1_Exp], ([ptts1_Exp]-Date())/28, IIf(0>([ptts1_Exp]-Date())/28,"หมดอายุ","-")) AS DateExp



 

09 ก.ค. 64 , 12:31:19
ตอบกลับ #1

PNR

ไม่เอาค่าติด - ถ้ามีติดลบให้แสดงหมดอายุ ใช่ไหม ?
ถ้าใช่ลองแบบนี้

DateExp: IIf((CInt(CDate([ptts1_Exp])-CDate(Date()))/28)<0,"หมดอายุ",CInt(CDate([ptts1_Exp])-CDate(Date()))/28)
เรียนเพื่อนสมาชิกและอาจารย์ทุกท่าน
ผมไม่ใช่อาจารย์และไม่ใช่ผู้ที่แตกฉานใน Access นะครับ
แค่ผู้หนึ่งที่แชร์ความรู้เท่าที่มี ถ้าหากอาจารย์ทุกท่านเห็นว่ายังไม่ถูกต้อง
กรุณาโพสตอบกระทู้ส่วนเนื้อหาที่น่าจะถูกต้องกว่าให้ด้วยเพื่อเป็นวิทยาทาน
 

09 ก.ค. 64 , 14:59:53
ตอบกลับ #2

001Jetnipit

ไม่เอาค่าติด - ถ้ามีติดลบให้แสดงหมดอายุ ใช่ไหม ?
ถ้าใช่ลองแบบนี้

DateExp: IIf((CInt(CDate([ptts1_Exp])-CDate(Date()))/28)<0,"หมดอายุ",CInt(CDate([ptts1_Exp])-CDate(Date()))/28)

อ่อผมลองแล้วก็ยังไม่ได้ครับ เลยเปลี่ยนเป็นหาวัน เดือน ปี ปกติแบบเขา ของผมจะเป็นคล้ายๆวันหมดอายุครับ

ตอนนี้กำลังหาวันอยู่ แต่ไม่รู้จะไปยังไงต่อ หาเดือนได้แล้วครับ
Code : DateDiff("m",Date(),[DateBirth])

เห็นคลิปของจาร TTT ทำมันเป็นนับอายุ ซึ้งมันตรงกันข้ามกับของผม พยามกลับอะไรดูแล้วครับแต่ตัวเลขออกมาแปลกๆ เลยไม่รู้พอจะมีทางไหมครับ

 

09 ก.ค. 64 , 15:37:35
ตอบกลับ #3

PNR

ยังไม่เข้าใจโจทย์ของคุณนะครับ

แต่พอมีตัวอย่างแนวๆ นี้จากกระทู้เก่าๆ มาให้ดู

https://www.thai-access.com/topic_post.asp?CategoryID=1&TopicID=4660

https://www.thai-access.com/index.php?topic=1027.msg4533#msg4533

เรียนเพื่อนสมาชิกและอาจารย์ทุกท่าน
ผมไม่ใช่อาจารย์และไม่ใช่ผู้ที่แตกฉานใน Access นะครับ
แค่ผู้หนึ่งที่แชร์ความรู้เท่าที่มี ถ้าหากอาจารย์ทุกท่านเห็นว่ายังไม่ถูกต้อง
กรุณาโพสตอบกระทู้ส่วนเนื้อหาที่น่าจะถูกต้องกว่าให้ด้วยเพื่อเป็นวิทยาทาน
 

09 ก.ค. 64 , 15:55:09
ตอบกลับ #4

001Jetnipit

อันนี้เข้าไปดูแล้วครับ ลิงค์แรกผมทำได้แล้ว

แต่เหลืออีกส่วนคือ สินค้าหมดอายุวันที่ 23 มิถุนายน ปี64 (มีอายุ 1 ปี) แต่อยากให้มันโชว์ใน Table ว่าเหลืออีกกี่วัน กี่เดือน ถึงจะหมดอายุ

เบื้องต้นทำตามคลิปนี้แล้วครับ


แต่วันนี้วันที่ 9 ผมตั้งให้หมดอายุวันนีแต่เป็นปีหน้ามันกลับบอกว่า 11 เดือน 0 วันเหมือนมันหายไปเดือนนึงอะครับ ไม่ทราบต้องแก้อย่างไรครับ

Code ของคำนวณวันครับ / วัน : IIf(Day([ptts1_Exp])-Day(Date())<0,DateDiff("d",DateAdd("m",DateDiff("m",Date(),[ptts1_Exp])-1,Date()),[ptts1_Exp]),Day([ptts1_Exp])-Day(Date()))


 

09 ก.ค. 64 , 20:42:25
ตอบกลับ #5

Max

น่าจะเขียนโค้ดไม่ครบนะครับ ไม่รู้ว่าเราดูคลิปเดียวกันป่าว ตามที่ผมเข้าใจอาจารย์บอกในคลิปว่า หากวันที่น้อยกว่าวันที่ปัจจุบันให้ลบออก 1 เดือน แต่หากเท่ากันหรือมากกว่าก็ไม่ต้องลบเดือน แต่คุณใช้โค้ดนี้

วัน : IIf(Day([ptts1_Exp])-Day(Date())<0,DateDiff("d",DateAdd("m",DateDiff("m",Date(),[ptts1_Exp])-1,Date()),[ptts1_Exp]),Day([ptts1_Exp])-Day(Date()))

มันหมายถึงวันที่เป้าหมายน้อยกว่าวันที่ปัจจุบันเท่านั้น ในคลิปมันต้องเขียนต่อด้วยว่าหากวันที่เท่ากันหรือมากกว่าต้องมีเขียนต่อนะครับ ไม่รู้ผมเข้าใจถูกหรือป่าว หรือ จขกท ดูคลิปไม่จบ ผมดูในคลิปโค้ดมันยาวกว่านี้เยอะเลยอะครับ

 


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