我正在尝试工作并了解如何处理 MS Access VBA 和表格中的日期。 我有这个变量:
Dim locking as Date
locking = Now
然后我继续使用示例代码从 vba 更新一些表:
query = " UPDATE table " & _
" SET locktime = """ & locking & """ & _
" WHERE recordID = 1"
db.Execute query, dbFailOnError
lockTime 是表定义中的日期字段。
如果更新查询总是成功,那么我需要在代码的另一部分中检索锁定的 ID 并将其分配给变量:
lockedID = DLookup(recordID, "table", "lockTime = locking")
我不明白如何处理该日期时间标准,我尝试了多次引用并使用 # 符号但无济于事 当然,我收到多种类型不匹配错误 我相信我没有正确处理最初的“查询”语法和 dlookup 语法
由于您总是会遇到必须在查询中处理日期和时间的情况,因此您可以创建一个小函数,将日期/时间作为字符串提供,可以轻松地在 SQL 字符串或 dlookup 中使用:
Public Function DateToSQL(ByVal dte_IN As Date) As String
' Converts a date/time to a SQL date/time
'
' IN: Date
' Out: String for direct use in SQL's
'
' Example
' strReturnValue = DateToSQL(now())
' Returns: #02/17/2024#
Dim strDateTmp As String
Dim strReturnValue As String
On Error GoTo DateToSQL_ERROR
strReturnValue = "ERROR"
strDateTmp = "#" & _
Format(dte_IN, "MM") & "/" & _
Format(dte_IN, "DD") & "/" & _
Format(dte_IN, "YYYY") & " " & _
Format(dte_IN, "HH") & ":" & _
Format(dte_IN, "NN") & ":" & _
Format(dte_IN, "SS") & _
"#"
strReturnValue = strDateTmp
DateToSQL_EXIT:
DateToSQL = strReturnValue
Exit Function
DateToSQL_ERROR:
Resume DateToSQL_EXIT
End Function