Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 表单-数据验证以停止重复预订访问_Ms Access_Vba_Ms Access 2007 - Fatal编程技术网

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",strW­here) > 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”,strW­here)>0,则
msgbox“对不起,您无法预订
……呜呜呜呜。。。。
以上只是一个例子,我相信您会构建一个很好的表单,提示用户预订日期。然而,这里的好处是,上面的简单查询将返回任何冲突