我在将CurrentDate和LastDayOfMonth移动到Access中用于数据处理的表时遇到一些问题
Dim CD As Date
Dim LDOM As Date
CD = DateSerial(Year(Date), Month(Date), Day(Date))
'Format(Now(), "mm-dd-yyyy")
LDOM = DateSerial(Year(Date), Month(Date) + 1, 0)
'Add Dates
CurrentDb.Execute "UPDATE tblProcess " & _
"SET tblProcess.[CurrentDate] = " & CD
CurrentDb.Execute "UPDATE tblProcess " & _
"SET tblProcess.[DueDate] = " & LDOM
Debug.Print CD
Debug.Print LDOM
每次我调试.Print - 公式或变量 - 它总是正确的。
但是我的桌子上两个字段的最终结果是“12/30/1899”任何人都可以帮忙吗?
答案 0 :(得分:3)
简单测试:
CurrentDb.Execute "UPDATE tblProcess" _
& " SET tblProcess.[CurrentDate] = #" & Format(CD, "yyyy-mm-dd") & "#;"
您的原始代码使用如下SQL:
UPDATE tblProcess SET tblProcess.[CurrentDate] = 12/03/2013
对于Access DATETIME字段来说是坏的。
相反,我们最终需要Accesss SQL string:
UPDATE tblProcess SET tblProcess.[CurrentDate] = #2013-12-03 22:00:13#;
UPDATE tblProcess SET CurrentDate = '2013-12-03T22:00:13';
虽然Access和SQL Server都是Bill Gates的Microsoft。