กระทู้เก่าบอร์ด อ.สุภาพ ไชยา
397 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
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#
Time: 0.1023s