我正在尝试比较访问数据库中的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
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助!
只需删除所有这些FORMAT东西,这将运行正常.
FORMAT的问题在于你实际上是按字母顺序比较日期,而且出于多种原因这是错误的.
"UPDATE Steuerungsboard
SET parkdauer = DateDiff('d', [kspausgang], [adatum])
WHERE kspausgang >= Nz(iausgang)
And kspausgang >= Nz(aausgang)
And kspausgang >= Nz(gausgang);"
Run Code Online (Sandbox Code Playgroud)