Date 如何在Access表中自动递增日期字段

Date 如何在Access表中自动递增日期字段,date,ms-access,vba,auto-increment,Date,Ms Access,Vba,Auto Increment,我有一个具有3列的访问表:一个自动编号“WeeklyID”、一个fgn键“CampaignID”和一个日期字段“WeekEnded”。 我需要完成的是一种方法,为共享相同活动ID的每条记录自动向日期字段添加7天 因此,如果有3条记录具有相同的活动ID,并且与第一条记录关联的日期为2016年4月1日,我希望第二条记录上的日期为2016年4月8日,第三条记录上的日期为2016年4月15日 我不确定这是否可以通过Access中的DateAdd函数实现,因此我想知道是否有任何VBA可以完成这项工作?您可

我有一个具有3列的访问表:一个自动编号“WeeklyID”、一个fgn键“CampaignID”和一个日期字段“WeekEnded”。 我需要完成的是一种方法,为共享相同活动ID的每条记录自动向日期字段添加7天

因此,如果有3条记录具有相同的活动ID,并且与第一条记录关联的日期为2016年4月1日,我希望第二条记录上的日期为2016年4月8日,第三条记录上的日期为2016年4月15日


我不确定这是否可以通过Access中的DateAdd函数实现,因此我想知道是否有任何VBA可以完成这项工作?

您可以在记录集中循环,在找到日期时选择一个日期,并使用DateAdd为具有相同ID的后续每个记录添加和存储一周,直到找到新ID和日期。依此类推。

您可以在记录集中循环,在找到日期时选择一个日期,并使用DateAdd为具有相同ID的每个后续记录添加并存储一周,直到找到新的ID和日期。依此类推。

如果这是一次性的事情,那么接受Gustav的建议并创建一个VBA例程来循环通过
DAO.Recordset
来更新日期可能是最简单的。然而,由于您使用的是Access_2013,我想我应该提到另一种方法:事件驱动

如果在表上定义以下“更改数据前”宏

然后,每当您为具有
NULL
[WeekEnded]列的现有[CampaignID]添加新行时,数据宏将使用下周的值填充[WeekEnded]

如果在现有表上创建宏并希望更新现有行,则只需运行更新查询

更新表格集activitid=activitid,其中WeekEnded为空;

如果这是一次性的事情,那么接受Gustav的建议并创建一个VBA例程来循环通过
DAO.Recordset
来更新日期可能是最简单的。然而,由于您使用的是Access_2013,我想我应该提到另一种方法:事件驱动

如果在表上定义以下“更改数据前”宏

然后,每当您为具有
NULL
[WeekEnded]列的现有[CampaignID]添加新行时,数据宏将使用下周的值填充[WeekEnded]

如果在现有表上创建宏并希望更新现有行,则只需运行更新查询

更新表格集activitid=activitid,其中WeekEnded为空;

@GordThompson是的,我在Access 2013上。@GordThompson是的,我在Access 2013上。嘿,Gord,谢谢你的回复。我现在正在尝试实施您的解决方案。但是,Access 2013中的设置字段函数似乎必须在createrecord或editrecord数据块中使用。宏将如何更改以适应此情况?@TryingtoLearn-您是在“更改前”宏中使用它还是在“更改后…”宏中使用它?当前正在尝试使用After Insert&也将尝试使用After update这就是它不起作用的原因。它需要在更改前宏中。嘿,Gord,谢谢你的回复。我现在正在尝试实施您的解决方案。但是,Access 2013中的设置字段函数似乎必须在createrecord或editrecord数据块中使用。宏将如何更改以适应此情况?@TryingtoLearn-您是在“更改前”宏中使用它还是在“更改后…”宏中使用它?当前正在尝试使用After Insert&也将尝试使用After update这就是它不起作用的原因。它需要位于“更改前”宏中。