กระทู้เก่าบอร์ด อ.Yeadram
1,462 6
URL.หัวข้อ /
URL
ขอถาม 2 ข้อครับ
1.ถ้าในรายงานจำนวนชั่วโมงเป็น 5.5 ชั่วโมง (5 ชั่วโมงครึ่ง) แต่ต้องการเปลี่ยนเป็น 5 ชม. 30 นาที ต้องทำอย่างไรครับ
2. ถ้าตอนกรอกข้อมูล ฟิลด์นั้นเป็น short time ถ้าใส่เป็น 8.00 จะผิด ถ้าใส่ 8:00 จะถูก มีวิธีแก้ไขไหมครับ ไม่อยากกด : (โคลอน) บ่อยๆ ค่อนข้างเสียเวลา
รบกวนด้วยครับ
2. ถ้าตอนกรอกข้อมูล ฟิลด์นั้นเป็น short time ถ้าใส่เป็น 8.00 จะผิด ถ้าใส่ 8:00 จะถูก มีวิธีแก้ไขไหมครับ ไม่อยากกด : (โคลอน) บ่อยๆ ค่อนข้างเสียเวลา
รบกวนด้วยครับ
6 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R08123
ขอบคุณ อ. yeadram มากครับ
แนวทางข้อแรกที่นำมาให้ เอาไปใช้ได้ครับ ก็ใช้วิธีสร้าง textbox อันที่ 2 แล้ว textอันที่ 1 ซ่อนเอาไว้
นี่คือที่ทำเสร็จแล้วครับ
=IIf(IsNull([sick]),"",([sick]*60\60) & "." & ([sick]*60 Mod 60))
ส่วนข้อที่ 2 ก็ให้ user ใช้ : (โคลอน) ต่อไปแล้วกัน หาทางแก้ไม่ออก
ถามอีกข้อครับทำไมใช้ ฟังก์ชั่น ceiling ในaccess มันบอกไม่รุ้จักครับ
=CEILING([text1],30)
ทั้งที่ copy มาจาก EXCEL งง
แนวทางข้อแรกที่นำมาให้ เอาไปใช้ได้ครับ ก็ใช้วิธีสร้าง textbox อันที่ 2 แล้ว textอันที่ 1 ซ่อนเอาไว้
นี่คือที่ทำเสร็จแล้วครับ
=IIf(IsNull([sick]),"",([sick]*60\60) & "." & ([sick]*60 Mod 60))
ส่วนข้อที่ 2 ก็ให้ user ใช้ : (โคลอน) ต่อไปแล้วกัน หาทางแก้ไม่ออก
ถามอีกข้อครับทำไมใช้ ฟังก์ชั่น ceiling ในaccess มันบอกไม่รุ้จักครับ
=CEILING([text1],30)
ทั้งที่ copy มาจาก EXCEL งง
3 @R08124
ตอบข้อ 2 นะครับ
ที่ textbox ที่ลงเวลา เข้าไปที่ property กด tab Data เลื่อนหา
input mask แล้วใส่ 00:00;0;_
ทดลองดูนะครับ
ที่ textbox ที่ลงเวลา เข้าไปที่ property กด tab Data เลื่อนหา
input mask แล้วใส่ 00:00;0;_
ทดลองดูนะครับ
4 @R08126
ทดลองแล้วครับ เยี่ยมเลยครับ
ขอบคุณ ditasilk ครับ
แต่ติดข้อสงสัย ceiling นี่ล่ะครับ งง อยู่
ขอบคุณ ditasilk ครับ
แต่ติดข้อสงสัย ceiling นี่ล่ะครับ งง อยู่
5 @R08128
หาเพิ่มเติม ให้ ไปพบ เขียนบน ASP ดัดแปลงนิดหน่อย
เอาไว้ที่ Module
Public Function Ceiling(ByVal n)
Dim iTmp, bErr, f
On Error Resume Next
n = CDbl(n)
If Err Then bErr = True
On Error GoTo 0
If bErr Then Err.Raise 5000, "Ceiling Function", _
"Input must be convertible to a sub-type of double"
f = Floor(n)
If f = n Then
Ceiling = n
Exit Function
End If
Ceiling = CInt(f + 1)
End Function
Function Floor(ByVal n)
Dim iTmp, bErr
On Error Resume Next
n = CDbl(n)
If Err Then bErr = True
On Error GoTo 0
If bErr Then Err.Raise 5000, "Floor Function", _
"Input must be convertible to a sub-type of double"
'Round() rounds up
iTmp = Round(n)
'test rounded value against the non rounded value
'if greater, subtract 1
If iTmp > n Then iTmp = iTmp - 1
Floor = CInt(iTmp)
End Function
ลองเรียก ใช้ฟังก์ชั่น จากในฟอร์มหรือที่อื่น ๆดู ครับ
Ceiling(123.456)
เอาไว้ที่ Module
Public Function Ceiling(ByVal n)
Dim iTmp, bErr, f
On Error Resume Next
n = CDbl(n)
If Err Then bErr = True
On Error GoTo 0
If bErr Then Err.Raise 5000, "Ceiling Function", _
"Input must be convertible to a sub-type of double"
f = Floor(n)
If f = n Then
Ceiling = n
Exit Function
End If
Ceiling = CInt(f + 1)
End Function
Function Floor(ByVal n)
Dim iTmp, bErr
On Error Resume Next
n = CDbl(n)
If Err Then bErr = True
On Error GoTo 0
If bErr Then Err.Raise 5000, "Floor Function", _
"Input must be convertible to a sub-type of double"
'Round() rounds up
iTmp = Round(n)
'test rounded value against the non rounded value
'if greater, subtract 1
If iTmp > n Then iTmp = iTmp - 1
Floor = CInt(iTmp)
End Function
ลองเรียก ใช้ฟังก์ชั่น จากในฟอร์มหรือที่อื่น ๆดู ครับ
Ceiling(123.456)
6 @R08133
ขอบคุณมากครับ
Time: 0.2488s
ถ้าเขียนย่อ 5ชั่วโมงจะได้ว่า
a=5.5
แปลง ค่า A เป็นนาที่ จะได้
A = a * 60
เอาจำนวนนาทีทั้งหมด หรือผลลัพธ์ของข้อเมื่อกี้นี้เอง มาหารแบบไม่เอาเศษเพื่อหาจำนวนชั่วโมง
จะได้
Hr = A\60
ต่อไปหา นาทีที่เหลือ ก็หานาที ก็คือการหาร เอาแต่เศษ
Mn = a mod 60
ถ้าอยากได้คำตอบแบบ string ก็ตอบ
คำตอบ = Hr & ":" & Mn
ถ้าอยากได้คำตอบแบบ Date/Time ก็ใช้ฟังก์ชั่นช่วยแปลง
คำตอบ = TimeSerial(Hr, Mn, 0)
ถ้าคุณเขียนแบบนี้ ต่อให้โจกท์ไม่ได้ลงท้ายด้วย .5 มันก็หาได้
เช่น 5.2 ชั่วโมง ก็จะเท่ากับ 5ชั่วโมงกับ 12นาที
.......................................
ถ้าคุณเอาแนวทางข้างต้น ไปเขียนเป็นฟังก์ชั่น คุณก็สามารถนำฟังก์ชั่นนี้ไปทำงานร่วมกับข้อ 2 ได้
เช่น
Text2_BeforeUpdate()
if len(text2)>0 then
if instr(1,text2,".") then
text2= ฟังก์ชั่น(text2)
end if
end if
end sub
ประมาณนี้ครับ