我正在使用MS Access作为MySQL服务器数据库的前端。在数据库中,我有一个名为PubHol(意思是公共假期)的表格,列出公共假期的日期dd/mm/yyyy。我有一个表格(链接到一个单独的表格),我输入course_start日期和course_end日期。我想创建一个函数,在函数检查日期范围输入course_start和course_end是否与PubHol中列出的日期一致的字段的lostfocus上触发自己。例如,如果客户的课程开始时间为01/01/2012,课程结束时间为15/01/2012,并且PubHol中的日期为前10/01/2012之间时,我希望收到一个MsgBox说某事。谢谢比较日期范围与表中的日期VBA
回答
这听起来像你只是想发出一个BETWEEN
查询到MySQL:
SELECT HolidayDate FROM PubHol
WHERE HolidayDate BETWEEN ? AND ?
...并在与Course_Start
和Course_End
值你感兴趣的查询参数填写。 (我假定VBA可以处理参数化查询。)
非常感谢 - 我会尝试它并恢复... – elstiv
假设你在你的数据库使用的日期数据类型而不是字符串数据类型,测试其陷入日期范围的假期应该是这样的VBA
Dim condition As String
Dim course_start As Date, course_end As Date
course_start = ...
course_end = ...
condition = "[Holiday] Between #" & Format$(course_start,"yyyy\/mm\/dd") & _
"# AND #" & Format$(course_end,"yyyy\/mm\/dd") & "#"
If DCount("*", "PubHol", condition) > 0 Then
MsgBox ...
End If
我在访问库
Public Function JetSqlDate(ByVal d As Variant) As String
If IsNull(d) Then
JetSqlDate = "NULL"
Else
JetSqlDate = Format$(d, "\#mm\/dd\/yyyy hh\:nn\:ss\#")
End If
End Function
发现这个功能使用它简化使病情
condition = "[Holiday] Between " & JetSqlDate(course_start) & _
" AND " & JetSqlDate(course_end)
注:如果MySQL表链接到Access数据库使用ODBC,您可以使用Access(Jet)SQL语法。访问(或ODBC驱动程序是精确的)会自动将其转换为MySQL语法。
非常感谢,明天早上将尝试它并恢复。再次感谢 – elstiv
*如果*平台支持使用类型化值和参数化SQL,我强烈推荐使用这两种方法,而不是依赖字符串格式并在SQL中包含数据。 –
@JonSkeet:我同意参数化查询通常更好;然而,在这里我正在使用一个类型为“Date”的值,并且我们有一个桌面场景。所以SQL注入应该不成问题。此外,我想使用方便的内置'DCount'功能。我想知道,如果SQL注入可能通过'DCount'和通过ODBC? –
- 1. TSQL比较日期范围
- 2. C#比较日期范围
- 3. 日期范围比较
- 4. Python的比较日期范围列表
- 5. 比较两个日期与范围
- 6. 与指定日期的日期范围比较
- 7. Oracle SQL - 将日期与日期范围进行比较
- 8. 如何将日期与日期范围进行比较
- 9. VBA中的日期比较
- 10. 将日期范围与一组日期范围进行比较SQL
- 11. 在VBA中比较日期
- 12. Highcharts比较不同的日期范围
- 13. 如何将日期范围与表中的值进行比较?
- 14. MySQL - 比较同一表中的行与日期范围
- 15. 谷歌电子表格:比较日期与单元格范围内的日期
- 16. mysql日期范围与较大日期之前的较大日期
- 17. 比较日期范围到数组值
- 18. 比较两个日期时间范围
- 19. 如何比较日期范围varchar coloumn
- 20. 使用JQuery比较日期范围?
- 21. JavaScript比较日期和设置范围
- 22. Highcharts比较日期范围条形图
- 23. 比较日期到CSV日期范围 - BASH
- 24. 日期时间和日期范围比较
- 25. 到达日期范围VBA
- 26. 与日期范围
- 27. 与日期范围
- 28. Excel VBA:日期比较
- 29. 日期范围的日期范围之间的任何日期
- 30. 比较日期范围与建立查询时的具体日期
你的意思是你将日期存储为* strings *?如果是这样,为什么不使用更合适的字段将它们存储为*日期*? –
嗨。我将公共假期的日期作为日期存储在表格中。 course_start和course_end日期位于另一个表格(Main_Data_Table)中,该表格基本上是预订表格。我需要的是,当员工进入一个新的预订,他们输入course_start和Course_end与PubHol表中的一个日期相符合时,他们收到一条消息说bla bla bla ...谢谢 – elstiv
对,所以当你给“dd/mm/yyyy“部分,这完全不相干,对吗?它不像文本格式实际上*它们是如何存储的? –