Ms access 表单-数据验证以停止重复预订访问
我在提出以下问题的解决方案时遇到问题:Ms access 表单-数据验证以停止重复预订访问,ms-access,vba,ms-access-2007,Ms Access,Vba,Ms Access 2007,我在提出以下问题的解决方案时遇到问题: 我有一张预订表,但当用户添加详细信息时,我想检查我的数据库,看看这些日期的确切车辆是否已经预订完毕。如果有,将显示一条错误消息 您的车辆应该有ID号。因此,当用户试图预订车辆时,您将根据预订车辆表检查ID。类似这样的东西(aircode)应该可以工作: Dim db as Database Dim rec as Recordset Set db = CurrentDB Set rec = db.OpenRecordset ("SELECT CarID F
我有一张预订表,但当用户添加详细信息时,我想检查我的数据库,看看这些日期的确切车辆是否已经预订完毕。如果有,将显示一条错误消息 您的车辆应该有ID号。因此,当用户试图预订车辆时,您将根据预订车辆表检查ID。类似这样的东西(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
假设已预订的车辆有开始和结束日期,则在以下情况下发生预订冲突: RequestStartDate=StartDate 因此,上面的查询相当简单,但如果发生任何冲突,上面的查询将返回记录,而您只是不允许预订。这意味着你不必维护庞大的“凌乱”的汽车表和汽车预定的每个日期。您只需要将简单的行附加到给定的车辆上,并带有开始和结束日期(因此很容易更改日期-您只需更新一个预订reocrd) 用于构建此类查询的Air代码如下所示:
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",strWhere) > 0 then
msgbox "sorry, you cant book
...bla bla bla....
dim strWhere as string
dim dtRequeestStartDate作为日期
dim dtRequestEndDate作为日期
暗淡的长
dtRequestStartDate=inputbox(“输入开始日期”)
dtRequestEndDate=inputbox(“输入结束日期”)
LNGCARD=输入框(“什么车id”)
strWhere=“#”和format(dtRequestStartDate,“mm/-dd/yyyy”)和“#=StartDate和CarID=“&lngcand”
如果dcount(“*”,“tableBooking”,strWhere)>0,则
msgbox“对不起,您无法预订
……呜呜呜呜。。。。
以上只是一个例子,我相信您会构建一个很好的表单,提示用户预订日期。然而,这里的好处是,上面的简单查询将返回任何冲突