【问题标题】:Dlookup Criteria SyntaxDlookup 标准语法
【发布时间】:2019-02-20 21:14:16
【问题描述】:

我花了几个小时在网上搜索,但无法找到并回答我的语法错误的原因。我有一个包含许多记录的表,它们都使用 Now() 标记了日期。我正在使用以下代码获取最新记录。

MaxDate = DMax("AuditDateTime", "Tbl_Data_Claim")

这很完美。现在我正在尝试使用 DLookup 来获取我想要的字段并将其放入我的表单中。

Me.Frm_Data_Claim_subform!TBSClaim_DOL = DLookup("[Claim_DOL]", "Tbl_Data_Claim", "[AuditDateTime] = " & [MaxDate] & "'")

我在查询表达式“[AuditDateTime] = 9/16/2018 2:32:14PM”中收到运行时错误“3075”语法错误(缺少运算符)。 该标准有效,因为我的时间戳显示在错误中。我敢肯定这只是一个放错地方的报价或一些简单的东西。我已经尝试了各种排列,但似乎没有任何效果。提前谢谢你。

【问题讨论】:

    标签: sql ms-access vba ms-access-2010


    【解决方案1】:

    您的 DMax 返回一个日期值,而 DLookup 中的过滤器需要该日期值的 字符串表达式

    通用(在美国以外也适用)方法是:

    "[AuditDateTime] = #" & Format([MaxDate], "yyyy\/mm\/dd hh\:nn\:ss# & "#"
    

    但是,您可以一次性完成并避免格式化:

    Me.Frm_Data_Claim_subform!TBSClaim_DOL = DLookup("[Claim_DOL]", "Tbl_Data_Claim", "[AuditDateTime] = DMax('AuditDateTime', 'Tbl_Data_Claim')")
    

    注意双引号变为单引号。

    【讨论】:

      【解决方案2】:

      提出问题后。我一直在寻找并找到答案,很好。我找到了一些接近的东西,然后修改直到它起作用。

      Me.Frm_Data_Claim_subform!TBSClaim_DOL = DLookup("[Claim_DOL]", "Tbl_Data_Claim", "AuditDateTime = #" & MaxDate & "#")
      

      因为变量是一个日期,所以我需要把它放在#'s 中。 希望这对其他人有帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-10-18
        • 1970-01-01
        • 2016-02-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-20
        相关资源
        最近更新 更多