我正在為帶有表單的“前端”部分在 ACCESS 上做我的專案,在 SQL Server 中為帶有資料庫的“后端”部分做我的專案,一切都很好,除了一件事:我不明白如何過濾 Access 的具有 SQL Server 日期型別的表單。
我在網上查找了所有內容,但所有解決方案似乎都不適用于我的情況(可能是因為 ACCESS/SQL Server 環境),例如:
Me.Form1.Filter = "[date born] = #" & Format("11/04/2022", "dd/mm/yyyy") & "#"
'with VBA directly
SELECT * FROM dbo_Person WHERE [date born] = Format('11/04/2022','dd/mm/yyyy') ;
-- with SQL Request from ACCESS on the table
但每次我遇到同樣的問題時:即使在右列中有此日期的行,也不會顯示任何內容。就像沒有行尊重這個條件一樣,即使情況并非如此。我猜這可能是 SQL Server Date 型別在 ACCESS 上轉換不好的問題。

這就是我的 ACCESS 列的日期默認顯示的方式(我的 ACCESS 軟體是用法語設定的)
資料很好地識別為“不是字串”,因為當我嘗試使用字串進行過濾時會出現錯誤。
有人可以幫我知道我在哪里遺漏了什么或打錯了什么嗎?
編輯:日期列似乎實際上被識別為 ACCESS 中的短字串,這可能是問題但仍然不知道如何解決,因為它確實是 sql server 上的日期型別

“Texte court”可以翻譯成“短文本”或短字串
uj5u.com熱心網友回復:
首先,如果您在 SQL Server 中使用資料型別DateTime2,它將在 Access 中讀取為文本。
因此,將其更改為DateTime。
接下來,在過濾日期值時使用通用格式 yyyy-mm-dd:
FilterDate = DateSerial(2022, 4, 11)
Me.Filter = "[date born] = #" & Format(FilterDate, "yyyy\/mm\/dd") & "#"
' Linked table in Access:
Sql = "SELECT * FROM dbo_Person WHERE [date born] = #" & Format(FilterDate, "yyyy\/mm\/dd") & "#;"
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/478478.html
上一篇:如何從API獲取json
下一篇:在SQL“選擇”查詢中定義臨時表
