【问题标题】:MS-Access date comparison Datatype conflictMS-Access 日期比较数据类型冲突
【发布时间】:2021-01-28 19:10:46
【问题描述】:

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

我尝试过的解决方案是:

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

这会产生几个不同的错误:

  • 没有分号(如所写):语法错误缺少运算符。
  • 单分号“数据类型冲突”
  • 带有双分号“ (chr(34)) 数据类型冲突

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

我应该如何解决这个问题?

【问题讨论】:

  • 你为什么不创建一个查询并加入你的表? DLookup 和类似的功能非常低效
  • 这就是我解决这个问题的方法。

标签: sql date ms-access


【解决方案1】:

使用正确的语法试试这个:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-17
    • 2011-06-15
    • 2017-11-06
    • 1970-01-01
    相关资源
    最近更新 更多