ผมได้ทำตัวอย่างการกำหนด ช่วงเวลาในแต่ละวัน โดยกำหนดเช็คค่าจาก
1.วันที่ textbox ชื่อ OnDate
2. เวลาเริ่ม ชื่อ StartTime
3. เวลาสิ้นสุดชื่อ EndTime
Private Sub Command1_Click()
If Me.Dirty Then
Dim strWhere As String, strMsg As String
With Me
strWhere = "(([StartTime]<#%S#) AND " & _
"([EndTime]>#%E#) AND " & _
"([OnDate]=#%D#))"
strWhere = Replace(strWhere, "%S", Format(.EndTime, "HH:mm:ss"))
strWhere = Replace(strWhere, "%E", Format(.StartTime, "HH:mm:ss"))
strWhere = Replace(strWhere, "%D", Format(.OnDate, "mm/dd/yy"))
Dim rsDao As DAO.Recordset
Set rsDao = CurrentDb.OpenRecordset("SELECT * FROM [Table1] WHERE " & strWhere, dbOpenDynaset)
If .OnDate = .OnDate And .EndTime < .StartTime Then
MsgBox "ท่านระบุช่วงเวลาผิด เวลาเริ่มต้องไม่น้อยกว่าเวลาสิ้นสุด", vbInformation, "แจ้งเตือน"
ElseIf rsDao.RecordCount = 0 Then
MsgBox "สามารถจองช่วงเวลานี้ได้", vbInformation, "สถานะการจอง"
DoCmd.Save
DoCmd.GoToRecord , , acNewRec
Me.SubTable1.Requery
Exit Sub
Else
MsgBox "มีการจองช่วงเวลานี้แล้ว", vbInformation, "สถานะการจอง"
Do While Not rsDao.EOF
strMsg = Replace(strMsg, "%D", Format(rsDao!OnDate, "dd-mmm-yy"))
strMsg = Replace(strMsg, "%S", Format(rsDao![StartTime], "HH:mm"))
strMsg = Replace(strMsg, "%E", Format(rsDao![EndTime], "HH:mm"))
rsDao.MoveNext
Loop
End If
Set rsDao = Nothing
End With
End If
End Sub
ที่จริงผมกำลังทำโปรแกรมให้พี่อยู่นะครับ แต่ตอนนี้ล่าช้าเพราะผมเล่นดนตรี ตามงานต่างๆ ด้วย งานบวช งานแต่งเยอะมากช่วงนี้ เลยไม่ค่อยว่างนั่งทำ
ถ้ารีบจริงๆ และติดแค่ตรงการเช็คช่วงเวลาก็ลองนำโค้ดนี้ไปปรับใช้ดูนะครับ เพราะมันสามารถเช็คช่วงเวลาการจองได้ ถ้าช่วงเวลานั้นมีการจองแล้ว
ก็จะไม่สามารถจองในช่วงเวลานั้นได้อีกครับ ลองนำไปปรับใช้ดูครับ