1

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

我知道我无法在 Access 中编写触发器,所以我正在尝试使用数据宏。谁能帮助我如何使用数据宏来做到这一点?

4

1 回答 1

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] 表上创建一个“插入后”数据宏,以将新的 [EventType] 值插入到 [EventTypes] 表中,如下所示:

    SetLocalVar
            名称 NotFound
            表达式 = True

    在 EventTypes 中查找
            Condition =[EventTypes].[EventType]=[Events].[EventType]的记录

        SetLocalVar
                名称 NotFound
                表达式 = False

    如果  [未找到]  

        在 EventTypes 中创建记录

            SetField
                    名称 EventTypes.EventType
                    值 = [Events].[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          
于 2013-06-11T13:13:43.833 回答