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

Posted

技术标签:

【中文标题】MS Access 事件驱动数据宏更新表(示例)【英文标题】:MS Access event-driven Data Macro to update table (example) 【发布时间】:2013-06-10 20:42:23 【问题描述】:

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

我知道我无法在 Access 中编写触发器,因此我正在尝试使用数据宏。谁能帮助我如何使用数据宏执行此操作?

【问题讨论】:

excel数据是怎么添加的?复制和粘贴还是使用宏或 VBA? 从 Access 导入选项 我唯一知道的是如何使用BeforeUpdate 在表单上执行某些操作...我不知道如何使用宏来执行此操作,抱歉。 【参考方案1】:

假设您有一个名为 [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 名称  未找到 表达式  = 真

    在 EventTypes 中查找记录条件=[EventTypes].[EventType]=[Events].[EventType]

        SetLocalVar 名称  未找到 表达式  = 假

    如果  [未找到]  那么

        在 EventTypes 中创建记录

            SetField 名称 EventTypes.EventType 值  = [Events].[EventType]

            SetField 名称  EventTypes.Added 值  = 现在()

    结束如果

现在,如果您使用新的 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          

【讨论】:

以上是关于MS Access 事件驱动数据宏更新表(示例)的主要内容,如果未能解决你的问题,请参考以下文章

MS Access AfterInsert 宏更新记录

在 ms Access 数据宏中从另一个表中获取数据

MS Access,更新查询不会更新链接表

如何在打开 MS Access DB 时禁用宏和启动值

暂时禁用 MS Access 数据宏

从 Datagridview 更新 MS Access 数据库