我正在尝试比较访问数据库中的4个日期字段,并将最新值和adatum之间的日期差异设置为parkdauer。它适用于同一月份日期的任何行。
strSQL = "UPDATE Steuerungsboard
SET parkdauer = DateDiff('d', [kspausgang], [adatum])
WHERE FORMAT(kspausgang, 'dd/MM/yyyy') >= FORMAT( iausgang, 'dd/MM/yyyy')
And FORMAT( kspausgang, 'dd/MM/yyyy') >= FORMAT( aausgang, 'dd/MM/yyyy')
And FORMAT( kspausgang, 'dd/MM/yyyy') >= FORMAT( gausgang, 'dd/MM/yyyy');"
CurrentDb.Execute strSQL, FailonError
感谢您的帮助!
答案 0 :(得分:5)
只需移除所有这些FORMAT
内容,这样就可以了。
FORMAT的问题是你实际按字母顺序比较日期,而且由于种种原因这是错误的。
"UPDATE Steuerungsboard
SET parkdauer = DateDiff('d', [kspausgang], [adatum])
WHERE kspausgang >= Nz(iausgang)
And kspausgang >= Nz(aausgang)
And kspausgang >= Nz(gausgang);"