我的計算機的區域日期設定是 dd/mm/yyyy。我正在使用 MS Access。我想使用 SQLINSERT INTO陳述句將記錄插入資料庫。當我嘗試使用該#dd/mm/yyyy#語法插入日期并在之后查看表中的結果記錄時,結果顯示該記錄以 mm/dd/yyyy 格式顯示日期,但僅針對該月的前 10 天;如果日期從 11 日開始,則記錄按預期顯示 dd/mm/yyyy。
例如,如果在我輸入的 SQL 代碼中#09/02/2022#,表格將顯示日期為 02/09/2022 的記錄。但是,如果我的 SQL 代碼是#11/02/2022#,那么記錄中會顯示正確的訂單 11/02/2022。
請幫忙。
uj5u.com熱心網友回復:
好的,這是如何作業的?
您不必關心、了解或考慮用戶的區域格式設定。
那么,如果您在表單上放置一些控制元件?只需確保將控制元件設定為日期型別格式即可。你完成了。
但是一個大豪門:
在任何情況下,您的基于字串的日期格式必須是美國格式。或者您可以使用 ISO 日期格式。
dim MyDate as Date
MyDate = me.InvoiceDate
所以,現在我們有一個內部格式日期變數。如何插入表格?
dim strSQL as string
strSQL = "INSERT INTO tblInvoice (InvoiceNum, InvoiceDate, InvoiceAmount " & _
"VALUES (1234, " & quDate(MyDate) & ",50)"
因此,您始終將日期值格式化為美國格式。
您可以一遍又一遍地鍵入該格式命令,但速度很快就會變得很累。
所以,我使用了一個小輔助函式:
Public Function quDate(dt As Date) As String
quDate = "#" & Format(dt, "mm\/dd\/yyyy") & "#"
End Function
Public Function quDateT(dt As Date) As String
' return formatted date with time
quDateT = "#" & Format(dt, "mm\/dd\/yyyy HH:NN:SS") & "#"
End Function
因此,您不必關心日期和區域格式,而是關心您在代碼中構建的行內 SQL 插入命令?是的,您必須轉換為 mm/dd/yyyy 的美國格式。
因此,您可以以任何格式顯示日期。對于表格,對于報告 - 不是問題。
但是,這里唯一的例外是您構建插入陳述句的代碼。該日期字串格式必須為#mm/dd/yyyy#。
或者,ISO:
#yyyy-mm-dd#
因此,任何一種格式都可以,但這是您必須遵守的硬性規定。
所以,從表單上的一個文本框,如果沒有資料系結,那么你要確保該文本框被設定為日期型別的文本框(fomrat date)。
然后在代碼中:
dim strSQL as string
strSQL = "INSERT INTO tblFun (BirthDate) " & _
"VALUES (#" & format(txtDate,"mm/dd/yyyy") & "#)"
currentdb.Execute strSQL
或者,如果你有那個輔助函式,那么這個:
strSQL = "INSERT INTO tblFun (BirthDate) " & _
"VALUES (" & qudate(txtDate) & ")"
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/429074.html
下一篇:使用今天的日期指定時間訪問默認值
