การป้อนค่าเวลา แต่ออกทั้งวันที่และเวลา
กระทู้เก่าบอร์ด อ.Yeadram

 1,034   4
URL.หัวข้อ / URL
การป้อนค่าเวลา แต่ออกทั้งวันที่และเวลา

คือผมอยากจะทำ Form ที่เก็บค่าวันที่และเวลา แต่มีวิธีไหนหรือเปล่าที่ป้อนเฉพาะเวลาอย่างเดียว แต่ show และเก็บใน table ทั้งวันที่และเวลา

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

1 @R20608
ออกแบบเพิ่มเป็น 2 ฟิวด์ได้หรือเปล่าครับ โดยฟิวด์หนึ่งเก็บเป็น DateTime และกำหนดค่า Default ไว้เป็น Date() ส่วนอีกฟิวด์หนึ่งค่อยเก็บเป็น Time (ถ้าใช้ Input Mask กำหนดรูปแบบของ Time ไว้ด้วยก็ดีครับ เพื่อป้องกันความผิดพลาดในการบันทึกข้อมูล)
2 @R20611
เมื่อไม่ได้ป้อนวัน ป้อนแต่เวลาเอาไว้ Access จะถือว่าเป็นวันที่ 31 ธค. ค.ศ. 1899 (แต่ไม่แน่ใจว่า Access ทุกเวอร์ชั่นจะกำหนดไว้เป็นค่านี้ตลอดหรือไม่ ยังไงถ้าโปรแกรมรันผ่าน ก็แปลว่าใช้ได้นะครับ) สมมุติเท็กซ์บ็อกซ์ที่รับวันเวลามีชื่อว่า DT ก็สามารถเขียนโค้ดใน Form_BeforeUpdate event procedure ได้เป็น

Private Sub Form_BeforeUpdate(Cancel As Integer)
    If Day(Me.DT) = 30 And Month(Me.DT) = 12 And Year(Me.DT) = 1899 Then
        Me.DT = Date + Me.DT
    End If
End Sub
3 @R20618
ขอบคุณครับ
4 @R20621
หากไม่มีการระบุวันที่ คือกรอกข้อมูลแค่เวลาเพียงอย่างเดียว โปรแกรม MS Access จะมองค่า Null นั้นเป็นวันที่ 30 ธันวาคม ค.ศ. 1899
บ้างก็ว่าเป็นตั้งแต่ Lotus ที่ใช้การอ้าง memory 640K คอมสมัยก่อน จึงต้องกำหนดมาแค่นี้ โดยให้ 30/12/1899 เป็นวันเริ่มต้น หลังวันที่ 0 มกราคม 1900 ไป 1 วัน (ในบางสูตรเค้าชอบใช้การอ้างวันที่ 0 มกราคม แทนการใช้ 31 ธันวาคม)
ผมก็ไม่รู้นะไม่เคยใช้ อายุไม่มากพอ แต่ที่รู้เป็นหมดครับทั้ง SQL, Excel, Access
แต่ของ MS Access ลองใช้ฟังก์ชั่น 2 ตัวนี้ดูจะเห็นรูปแบบครับ
----------------------------------------
?CDate(5)                 |    4/1/1900
?CDate(4)                 |    3/1/1900
?CDate(3)                 |    2/1/1900
?CDate(2)                 |    1/1/1900
?CDate(1)                 | 31/12/1899
?CDate(0)                 |     0:00:00
?CDate(-1)               | 29/12/1899
?CDate(-2)               | 28/12/1899
?CDate(-3)               | 27/12/1899
?CDate(-4)               | 26/12/1899
?CDate(-5)               | 25/12/1899
----------------------------------------
----------------------------------------
?DateSerial(1900,1,4)     |    4/1/1900
?DateSerial(1900,1,3)     |    3/1/1900
?DateSerial(1900,1,2)     |    2/1/1900
?DateSerial(1900,1,1)     |    1/1/1900
?DateSerial(1900,1,0)     | 31/12/1899
?DateSerial(1900,1,-1)    |     0:00:00
?DateSerial(1900,1,-2)    | 29/12/1899
?DateSerial(1900,1,-3)    | 28/12/1899
?DateSerial(1900,1,-4)    | 27/12/1899
?DateSerial(1900,1,-5)    | 26/12/1899
?DateSerial(1900,1,-6)    | 25/12/1899
----------------------------------------
ประมาณนี้ครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3198s