将日期移动到访问表字段 - 打印不正确的日期

时间:2013-12-03 20:38:05

标签: vba ms-access access-vba

我在将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”任何人都可以帮忙吗?

1 个答案:

答案 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#;

请不要为这么小的贡献投票,我还没说完,对于SQL Server,我们必须使用:

  UPDATE tblProcess SET CurrentDate = '2013-12-03T22:00:13';

虽然Access和SQL Server都是Bill Gates的Microsoft。