MS-Access日期比较数据类型冲突

问题描述

在我的项目中,我有一些订单,其中包含一定数量的小时数,这些小时数必须通过费率来开具发票,它们都存储在表格中。订单具有有效期自日期。所有订单都必须按有效价格在Order.TimeStamp之前的最后一个价位开票。

我尝试过的解决方案是:

OrderDate = DLookup("TimeStamp","Order","OrderID=" & ThisOrderID & ")
LastRateDate = DMAX ("ValidFrom","CompanyRate","CompanyID=" & ThisCompanyID & " AND ValidFrom <=" & OrderDate)
CompanyRate = DLookup ("Rate","CompanyID=" & ThisCompanyID & " AND "ValidFrom =" & LastRateDate)

这给出了几个不同的错误

  • 不带分号(按书面规定):缺少语法错误运算符。
  • 具有单个分号'数据类型冲突
  • 带有双分号“(chr(34))数据类型冲突

我使用德语计算机,德语为Windows和MS-Access语言。我运行MS-Access 2013

我该如何解决

解决方法

尝试使用正确的语法:

OrderDate = DLookup("TimeStamp","Order","OrderID = " & ThisOrderID & "")
LastRateDate = DMax("ValidFrom","CompanyRate","CompanyID = " & ThisCompanyID & " AND ValidFrom <= #" & Format(OrderDate,"yyyy\/mm\/dd") & "#")
CompanyRate = DLookup("Rate","CompanyID = " & ThisCompanyID & " AND ValidFrom = #" & Format(LastRateDate,"yyyy\/mm\/dd") & "#")