Dlookup Criteria语法

问题描述 投票:0回答:2

我花了几个小时搜索网络,无法找到并回答为什么我的语法错误。我有一个包含许多记录的表,它们都使用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:14 PM“中收到运行时错误'3075'语法错误(缺少运算符)。条件正常,因为我的时间戳显示在错误中.I我确定它只是一个错误的引用或简单的东西。我已经尝试了各种排列,似乎没有任何工作。提前谢谢你。

sql access-vba ms-access-2010
2个回答
2
投票

您的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')")

请注意双引号更改为单引号。


0
投票

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

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

因为变量是一个日期,我需要将其括在#的中。希望这有助于其他人。

© www.soinside.com 2019 - 2024. All rights reserved.