【问题标题】:Trying to Find Duplicate Records in Access Error尝试在访问错误中查找重复记录
【发布时间】:2020-04-14 17:52:02
【问题描述】:

我正在为一家体育俱乐部制作数据库, 填写表格时,他们输入设施 ID、开始时间、结束时间和日期。 我想要做的是,当他们进入结束时间框时,该功能会扫描“预订”表上的条目,该表中的所有数据都存储在该表中,以查看该设施此时是否已预订。 ( 确定是否在某个时间被订满,如果桌子上的开始时间或结束时间在表格上填写的时间之间,则会抛出错误 代码如下:

Private Sub EndNon_AfterUpdate()
    Dim criteria As String
   criteria = _
      "Non-PlayingFacilityID= " & Me.NonPlayID.Value & " " & _
      "Date(Non-PlayingFacility)= " & Me.DateNon.Value & _
      " " & "AND [StartTime(Non-PlayingFacility)] Between Me.StartNon.Value And Me.EndNon.Value OR [EndTime(Non-PlayingFacility)] Between Me.StartNon.Value And Me.EndNon.Value "

   If DCount("*", "Bookings", criteria) > 0 Then
      MsgBox "Unfortunately, this facility is booked at this time"
      Me.Undo
   End If

End Sub

运行时抛出语法错误,不知道为什么。 任何帮助将不胜感激

【问题讨论】:

    标签: vba ms-access


    【解决方案1】:

    它可能会突出显示这种无效的语法:

    "Date(Non-PlayingFacility)= " & Me.DateNon.Value & _
    

    也许你的意思是:

    "DateValue([Non-PlayingFacility])= " & Format(Me!DateNon.Value, "\#yyyy\/mm\/dd\#") & _
    

    剩余的日期比较需要连接起来,格式类似。

    附录 - 给出了不起眼的字段名称:

    "[Date(Non-PlayingFacility)]= " & Format(Me!DateNon.Value, "\#yyyy\/mm\/dd\#") & _
    

    需要该格式才能在 SQL 中为日期值创建有效的字符串表达式。这与用于显示的格式无关。

    【讨论】:

    • Gustav,变量名其实是“Date(Non-PlayingFacilty)”。我知道这对括号有误导性,并且会改变它。输入掩码用于表单中的日期值,因此格式正确,因此无需更改,谢谢
    • 没有。您将不得不调整完整的代码 - 正如我的回答中所述。
    猜你喜欢
    • 2010-10-25
    • 2015-01-15
    • 1970-01-01
    • 2021-10-16
    • 2016-07-07
    • 2019-09-24
    • 2016-07-03
    相关资源
    最近更新 更多