Ms access 如何更改access邮件合并源?

Ms access 如何更改access邮件合并源?,ms-access,Ms Access,我有一个表达式,从一个字段日期中提取月份和日期,然后从另一个字段中提取年份DOB-出生日期 字段中的示例数据: 日期:1/2/2003 出生日期:1953年1月15日 表达方式: 返回日期:2013年1月2日 我的问题是:如果DOB发生在该年的现有日期周年之后,那么取消日期应该增加1年,因此上面的表达式应该返回2014年。我如何将其包括在内并简化这个表达式?谢谢 我尚未测试此查询,因此可能需要对其进行调整才能得到您想要的结果。其思想是使用格式简化m/d/零件。然后使用IIf表达式来确定要将多少年

我有一个表达式,从一个字段日期中提取月份和日期,然后从另一个字段中提取年份DOB-出生日期

字段中的示例数据:

日期:1/2/2003

出生日期:1953年1月15日

表达方式:

返回日期:2013年1月2日


我的问题是:如果DOB发生在该年的现有日期周年之后,那么取消日期应该增加1年,因此上面的表达式应该返回2014年。我如何将其包括在内并简化这个表达式?谢谢

我尚未测试此查询,因此可能需要对其进行调整才能得到您想要的结果。其思想是使用格式简化m/d/零件。然后使用IIf表达式来确定要将多少年添加到年[DOB]

选择 格式[日期],“m/d/”和年份[日期] +IIfDatePart'y',[DOB]>DatePart'y',[Date],61,60 作为[取消日期] 从你的桌子上; 这种方法依赖于DatePart'y',…,它给出了一年中的某一天。例如,DateParty,2013-04-02返回92。您可以使用此方法将一个日期的月/日部分与另一个日期的月/日部分进行比较。。。这是一条避免单独检查月份和日期的捷径


不幸的是,DatePart'y'。。。不能正确解释闰年。请参阅下面Gord的评论。

我还没有测试此查询,因此可能需要调整以获得您想要的结果。其思想是使用格式简化m/d/零件。然后使用IIf表达式来确定要将多少年添加到年[DOB]

选择 格式[日期],“m/d/”和年份[日期] +IIfDatePart'y',[DOB]>DatePart'y',[Date],61,60 作为[取消日期] 从你的桌子上; 这种方法依赖于DatePart'y',…,它给出了一年中的某一天。例如,DateParty,2013-04-02返回92。您可以使用此方法将一个日期的月/日部分与另一个日期的月/日部分进行比较。。。这是一条避免单独检查月份和日期的捷径


不幸的是,DatePart'y'。。。不能正确解释闰年。见下面戈尔的评论。

我相信这就是你想要的:

Cancel Date: DatePart("m", [Date]) & "/" & DatePart("d", [Date]) & "/" & (DatePart("yyyy", [DOB]) + IIf((DatePart("m", [DOB]) < DatePart("m", [Date])) Or (DatePart("m", [DOB]) = DatePart("m", [Date]) And DatePart("d", [DOB]) < DatePart("d", [Date])), 60, 61))

我相信这就是你想要的:

Cancel Date: DatePart("m", [Date]) & "/" & DatePart("d", [Date]) & "/" & (DatePart("yyyy", [DOB]) + IIf((DatePart("m", [DOB]) < DatePart("m", [Date])) Or (DatePart("m", [DOB]) = DatePart("m", [Date]) And DatePart("d", [DOB]) < DatePart("d", [Date])), 60, 61))

不,这只是一个问号。我的建议有用吗?“我不确定当[Date]和[DOB]是同一个月和同一天时要加多少年。”HansUp现在正在研究它。我正在尝试在表达式生成器中写入您的答案,或者这是错误的?它告诉我它太复杂了,你能从SQL视图中执行吗?对于简单的表达式,“设计”视图很好,但当表达式相当复杂时,它会妨碍我。不,它只是一个查询工具。我的建议有用吗?“我不确定当[Date]和[DOB]是同一个月和同一天时要加多少年。”HansUp现在正在研究它。我正在尝试在表达式生成器中写入您的答案,或者这是错误的?它告诉我它太复杂了,你能从SQL视图中执行吗?对于简单的表达式,“设计”视图很好,但当表达式适度复杂时,它会妨碍我的工作。+1表示更紧凑的解决方案,并表示一年中的某一天的技巧-鬼鬼祟祟……:鬼鬼祟祟的,但在正确的情况下非常有用。不过,这些情况并不经常出现,所以我总是要从在线帮助中找到答案……只是想一想:“‘闰年’旅行不能在一年中的某一天进行吗?”?DateParty,2012-03-01=61但DateParty,1955-03-01=60@JasonBayldon啊哼。。。查看上面戈尔的评论。不幸的是,我的建议并不安全。你应该用他的答案来代替。+1是一个更简洁的解决方案,也是一年中的一天-鬼鬼祟祟……:鬼鬼祟祟的,但在正确的情况下非常有用。不过,这些情况并不经常出现,所以我总是要从在线帮助中找到答案……只是想一想:“‘闰年’旅行不能在一年中的某一天进行吗?”?DateParty,2012-03-01=61但DateParty,1955-03-01=60@JasonBayldon啊哼。。。查看上面戈尔的评论。不幸的是,我的建议并不安全。你应该用他的答案代替。
If (Month([DOB]) < Month([Date]))
        Or (Month([DOB]) = Month([Date]) And Day([DOB]) < Day([Date])) Then
    add 60
Else
    add 61
End If