MS Access事件驱动的数据宏更新表(示例)

时间:2013-06-10 20:42:24

标签: ms-access ms-access-2010 ms-access-2013 ms-access-data-macro

我已将一些数据导入Excel中的Access。现在我想编写一个类似于trigger的代码,每当我从Excel获取新数据时,它都会更新另一个表。

我知道我无法在Access中编写触发器,因此我尝试使用数据宏。任何人都可以使用数据宏为我提供帮助吗?

1 个答案:

答案 0 :(得分:5)

假设您有一个名为[Events]的表,并且您正在从Excel导入数据并将其附加到表中

ID  EventName              EventType           EventDate 
--  ---------------------  ------------------  ----------
 1  New Staff Orientation  Training: in-house  2013-06-07
 2  TGIF barbecue lunch    Social              2013-06-14

假设您还有一个名为[EventTypes]的表来跟踪可以分配给事件的类别。需要批准来自Excel数据的[EventType]值以避免不必要的重复,拼写错误等。您的[EventTypes]表看起来像这样

EventType           Added                Approved
------------------  -------------------  -------------------
Training: in-house  2013-06-01 09:15:33  2013-06-01 09:37:16
Social              2013-06-07 10:01:23  2013-06-07 10:22:00

您可以在[Events]表上创建一个“After Insert”数据宏,将新的[EventType]值插入[EventTypes]表中,如下所示:

<强> SetLocalVar
名称NOTFOUND
表达式=真

<强>查找记录在事件类型
Where Condition = [EventTypes]。[EventType] = [Events]。[EventType]

<强> SetLocalVar
名称NOTFOUND
表达式=假

如果 [NotFound] 那么

在EventTypes中创建记录

<强> SetField
名称EventTypes.EventType
值= [事件]。[EventType]

<强> SetField
名称EventTypes.Added
Value = Now()

结束

现在,如果您使用新的EventType导入事件......

ID  EventName              EventType           EventDate 
--  ---------------------  ------------------  ----------
 1  New Staff Orientation  Training: in-house  2013-06-07
 2  TGIF barbecue lunch    Social              2013-06-14
 3  Bathtub races          Team Building       2013-06-15

...数据宏会自动将其添加到EventTypes表

EventType           Added                Approved
------------------  -------------------  -------------------
Training: in-house  2013-06-01 09:15:33  2013-06-01 09:37:16
Social              2013-06-07 10:01:23  2013-06-07 10:22:00
Team Building       2013-06-11 08:38:37