我花了几个小时搜索网络,无法找到并回答为什么我的语法错误。我有一个包含许多记录的表,它们都使用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我确定它只是一个错误的引用或简单的东西。我已经尝试了各种排列,似乎没有任何工作。提前谢谢你。
您的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')")
请注意双引号更改为单引号。
提出问题后。我一直在寻找并找到了答案。我发现了一些接近然后修改的东西直到它起作用。
Me.Frm_Data_Claim_subform!TBSClaim_DOL = DLookup("[Claim_DOL]", "Tbl_Data_Claim", "AuditDateTime = #" & MaxDate & "#")
因为变量是一个日期,我需要将其括在#的中。希望这有助于其他人。