"DueDate" and "DueTime" calculations
กระทู้เก่าบอร์ด อ.สุภาพ ไชยา

 282   5
URL.หัวข้อ / URL
"DueDate" and "DueTime" calculations

ถามไว้ที่ 
http://www.utteraccess.com/forums/showflat.php?Cat=&Board=AxxessXP&Number=117482&page=0&view=&sb=&o=&fpart=1&vc=1&PHPSESSID= 
 
เขาต้องการที่จะให้แปลงเป็นฟังก์ชันในการคำนวณการส่งของคืน โดยมีเกณฑ์ดังนี้ 
 
If TimeOut before 2pm Then 
ถ้ายืมออกก่อนบ่าย 2 โมง ให้คืนอีก 1 ชั่วโมงข้างหน้าของวันเดียวกัน 
DueTime=TimeOut + 1 hour 
DueDate=DateOut 
Else 
ถ้ายืมหลังจากบ่าย 2 โมงแล้ว 
If DayOfWeek = Friday Then 
ถ้าเป็นวันศุกร์ 
DueTime = 9am 
DueDate = next Monday 
ให้คืนวันจันทร์ เวลา 9 โมงเช้า 
Else 
DueTime = 9am 
DueDate = Tommorow 
ถ้าไม่ใช่วันศุกร์ ให้คืนวันรุ่งขึ้น ตอน 9 โมง 
End If 
End If 
 
ผมเลยได้เขียนฟังก์ชันนี้ขึ้นมาให้เขาครับ ดังนี้ 
 
Function ReturnDateTime(dtm As Date) As Date 
Dim dteDue As Date 
If Format(dtm, "hh") < 14 Then 
    dteDue = DateAdd("h", 1, dtm) 
Else 
    If Format(dtm, "ddd") = "Fri" Then 
        dteDue = DateSerial(Year(dtm), Month(dtm), Day(dtm) + 3) & " 9:00:00 am" 
    Else 
        dteDue = DateSerial(Year(dtm), Month(dtm), Day(dtm) + 1) & " 9:00:00 am" 
    End If 
End If 
ReturnDateTime = dteDue 
End Function 
 
ลองทดสอบดู 
 
? ReturnDateTime(#12/Sept/2002 2:00:00 pm#) 
 13/9/2545 9:00:00 
 
 Print ReturnDateTime(#9/12/2002#) 
 12/9/2545 1:00:00 
 
 Print ReturnDateTime(#9/13/2002 2:00:00 PM#) 
 16/9/2545 9:00:00

5 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R00946
ตัวอย่างประกอบอยู่ที่ http://www.utteraccess.com/uploads/117575-CaclDateDue97.zip ครับ
2 @R00947
คล้ายๆ ของผมครับ อ.สุภาพ เกี่ยวกับเรื่องการส่งเงินจากการขาย ถ้าเปิด Bill หลัง 5.00 PM ให้เป็นของวันรุ่งขึ้น แต่ผมใช้ qurey และตั้งเงื่อนไขเวลาเป็น 2 Field ปัญหาของผมคือ วันเสาร์ต้องการทั้งหมดจะทำอย่างไรดีครับ
3 @R00948
ต้องการทั้งหมด หมายความว่าอย่างไรครับ ผมไม่เข้าใจจุดนี้ ช่วยอธิบายเพิ่มด้วยครับ
4 @R00949
ถ้าเป็นวันเสาร์ ต้องการแสดงข้อมูลทั้งหมด แต่ถ้าเป็นวันอื่นๆ ก็เป็นไปตามปกติคือ หลัง 5 โมงเย็นเป็นของวันรุ่งขึ้นครับ อ.
5 @R00950
เพิ่มเติ่มครับ อ. วันเสาร์จะต้องแสดงของวันศุกร์หลัง 5 โมงเย็น และข้อมูลวันเสาร์ทั้งหมด ใน Field ผมมี ReceiptNO, ReceiptDate,ReceiptTime ในQuery ผม set Criteria เป็น ReceiptDate ---------------------------ReceiptTime Date()-1 --------------------------->=#16:30:00# Date() ---------------------------<#16:30:00#
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.0401s