2015-09-01 32 views

回答

1

您的車輛應該有身份證號碼。因此,當用戶試圖預訂車輛時,您會在預訂車輛列表中檢查身份證件。像這樣(aircode)的東西應該工作:

Dim db as Database 
Dim rec as Recordset 

Set db = CurrentDB 
Set rec = db.OpenRecordset ("SELECT CarID FROM tblBookedCars WHERE CarID = " & Me.cboCarsToBook.Selected & "") 

If rec.EOF Then 
    'Your car isn't booked, so process your booking 
Else 
    Msgbox "That car is already booked" 
End If 
1

假設訂出汽車有開始和結束日期,然後預約發生衝突時:

RequestStartDate < =結束日期 和 RequestEndDate> =起始日期

因此上面是一個相當簡單的查詢,但如果發生任何衝突,上面將返回記錄,而您根本不允許預訂。這意味着你不必維護一些巨大的「凌亂」的汽車表格,並且每個日期都是汽車的書本。你只需要簡單的一行連接到一個給定的車輛上,開始日期和結束日期(因此很容易改變日期 - 你只需要更新一個預訂記錄)

建立這樣一個查詢的空氣代碼看起來很像這樣:

dim strWhere      as string 
dim dtRequeestStartDate  as date 
dim dtRequestEndDate   as date 
dim lngCarID   as long 

dtRequestStartDate = inputbox("Enter start Date") 
dtRequestEndDate = inputbox("Enter end date") 
lngCarID = inputbox("What car id") 

strWhere="#" & format(dtRequestStartDate,"mm/­dd/yyyy") & "# <= EndDate" & _ 
" and #" & format(dtRequestEndDate,"mm/dd­/yyyy") & "# >= StartDate and CarID = " & lngCarID 


if dcount("*","tableBooking",strW­here) > 0 then 
    msgbox "sorry, you cant book 
...bla bla bla.... 

以上只是一個例子,我相信你會建立一個很好的形式提示預約日期的用戶。但是,什麼是好的這裏的是,上述簡單的查詢將返回的任何碰撞。