我花了数小时在网上搜索,无法找到并回答我的语法错误的原因。我有一个包含许多记录的表,它们都使用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”语法错误(缺少运算符)。 该标准有效,因为我的时间戳显示在错误中。我相信这只是一个错误的报价或简单的东西。我尝试了各种排列,但似乎没有任何效果。预先谢谢你。
答案 0 :(得分: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')")
请注意将双引号更改为单引号。
答案 1 :(得分:0)
提出问题后。我一直在寻找并找到答案,很好。我找到了一些接近的东西,然后对其进行了修改,直到它起作用为止。
public enum TaskSortType
{
BY_NAME_ASC = 0,
BY_NAME_DESC = 1,
BY_UPDATED_DATE_ASC = 2,
BY_UPDATED_DATE_DESC = 3,
}
因为变量是一个日期,所以我需要在#号中将其括起来。 希望这对其他人有帮助。