กระทู้เก่าบอร์ด อ.สุภาพ ไชยา
345 4
URL.หัวข้อ /
URL
ปรึกษาอาจารย์สุภาพ...การแสดงเวลา
อาจารย์ครับผมดึงโปรแกรมไปใช่ 2-3 เครื่อง(ระบบแลน) ในโปรแกรมผมให้แสดงชื่อ - นามสกุล และเวลาที่ทำงานบาง หลังจากรับรหัสมาแล้ว เครื่องก็แสดงเป็น 24 ชม. แต่บางเครื่องก็แสดงเป็น 12 ชม. (แถมกลางวันยังแสดงเป็น PM ีอีก) ผมเลยไม่เข้าว่าทำไมถึงเป็นอย่างนี้ ซึ่งผมตรวจสอบรูปแบบเวลาใน Control Panel แต่ละเครื่องแล้วก็เหมือนกัน ผมต้องการให้แสดงเป็น 24 ชม. ตรงที่ส่วนแสดงครับ
รบกวนอาจารย์ช่วยแนะนำด้วยครับ ขอบคุณครับ
-แสดงตอนรับเวลาเข้า
Text4 = DLookup("[Prefix]+[Name]", "History", "Id_Teacher = '" & Text0 & "'")
Text4 = Text4 & " " & DLookup("[Lastname]", "History", "Id_Teacher = '" & Text0 & "'") & " " & " เข้างานเวลา " & Text3
-แสดงตอนรับเวลาออก
Text4 = DLookup("[Prefix]+[Name]", "History", "Id_Teacher = '" & Text0 & "'")
Text4 = Text4 & " " & DLookup("[Lastname]", "History", "Id_Teacher = '" & Text0 & "'") & " " & " ออกงานเวลา " & Text3
รบกวนอาจารย์ช่วยแนะนำด้วยครับ ขอบคุณครับ
-แสดงตอนรับเวลาเข้า
Text4 = DLookup("[Prefix]+[Name]", "History", "Id_Teacher = '" & Text0 & "'")
Text4 = Text4 & " " & DLookup("[Lastname]", "History", "Id_Teacher = '" & Text0 & "'") & " " & " เข้างานเวลา " & Text3
-แสดงตอนรับเวลาออก
Text4 = DLookup("[Prefix]+[Name]", "History", "Id_Teacher = '" & Text0 & "'")
Text4 = Text4 & " " & DLookup("[Lastname]", "History", "Id_Teacher = '" & Text0 & "'") & " " & " ออกงานเวลา " & Text3
4 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R03343
เหมือนกันครับอาจารย์
3 @R03344
ไม่ทราบว่าใช้ Access เวอร์ชันไหน และ OS เป็นอะไร ต่างกันมั๊ย ซึ่งอาจจะมีผลต่อการแสดงเวลาดังกล่าว
การเก็บเวลาเข้าออก เก็บไว้ในไฟล์ Text หรือ ใน Access และฟีลด์เป็น DateTime หรือเปล่า
ถ้าเป็นแบบหลัง การแสดงผลเป็นแบบไหนก็ไม่มีปัญหาต่อกาาคำนวณครับ เพราะการเก็บฟีลด์แบบ DateTime มันเก็บเป็น Double และการแสดงจะออกมาตาม Format ที่ได้จัดไว้
ลองดูจากตัวอย่างนี้ครับ
? now
5/6/2546 10:28:26
(เวลาปัจจุบันในเครื่องฯ ผม)
? datediff("h",now,#5 june 2003 3:00:00 PM#)
5
(ลองหาผลต่างเป็น ชั่วโมง กับเวลาบ่าย 3 ตรงวันนี้ จะได้ 5 ชั่วโมงถูกต้อง)
หรือแบบนี้ครับ
? Cdbl(now) & " " & now
37777.4386805556 5/6/2546 10:31:42
(แปลงเวลาปัจจุบันให้เป็น Double จะได้ 37777.4386805556)
เมื่อนำค่ามาแปลงเป็นวันที่ จะได้
? CDate(37777.4386805556)
5/6/2546 10:31:42
หรือจะลองเปรียบเทียบแบบ 24 กับ 12 ดูก็ได้
? CDbl(#5/6/2546 10:31:42 PM#)
236074.938680556
? CDbl(#5/6/2546 22:31:42#)
236074.938680556
ได้ค่าออกมาเท่ากันครับ
การเก็บเวลาเข้าออก เก็บไว้ในไฟล์ Text หรือ ใน Access และฟีลด์เป็น DateTime หรือเปล่า
ถ้าเป็นแบบหลัง การแสดงผลเป็นแบบไหนก็ไม่มีปัญหาต่อกาาคำนวณครับ เพราะการเก็บฟีลด์แบบ DateTime มันเก็บเป็น Double และการแสดงจะออกมาตาม Format ที่ได้จัดไว้
ลองดูจากตัวอย่างนี้ครับ
? now
5/6/2546 10:28:26
(เวลาปัจจุบันในเครื่องฯ ผม)
? datediff("h",now,#5 june 2003 3:00:00 PM#)
5
(ลองหาผลต่างเป็น ชั่วโมง กับเวลาบ่าย 3 ตรงวันนี้ จะได้ 5 ชั่วโมงถูกต้อง)
หรือแบบนี้ครับ
? Cdbl(now) & " " & now
37777.4386805556 5/6/2546 10:31:42
(แปลงเวลาปัจจุบันให้เป็น Double จะได้ 37777.4386805556)
เมื่อนำค่ามาแปลงเป็นวันที่ จะได้
? CDate(37777.4386805556)
5/6/2546 10:31:42
หรือจะลองเปรียบเทียบแบบ 24 กับ 12 ดูก็ได้
? CDbl(#5/6/2546 10:31:42 PM#)
236074.938680556
? CDbl(#5/6/2546 22:31:42#)
236074.938680556
ได้ค่าออกมาเท่ากันครับ
4 @R03345
มันจะเกี่ยวกันเวลาที่ Set ไว้ในเครื่องหรือเปล่าครับที่ Control Panel / Regional Setting / Date เซ็ตค่าเวลาเหมือนกันหรือเปล่า (มันน่าจะเป็นอย่างนั้น)
Time: 1.1373s
ถ้า H ตัวใหญ่ จะเป็น แบบ 24 ชั่วโมง
ถ้า h ตัวเล็ก จะเป็น 12 ชั่วโมง