我正在使用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「部分,這完全不相干,對嗎?它不像文本格式實際上*它們是如何存儲的? –