0

我知道在 MSSQL 中,当您将触发器加载到表上时,您可以访问要操作的记录的“缓存表”(更新、插入、删除)。

是否有类似的机制可以从 Access 中使用?如果不是,如果我想从基表强制执行 1:1-M 到连接表,我该怎么做?

尝试使用他们的“哦,太有用了”的关系模式,但由于我找不到我设置和索引的 PK 的“唯一”索引,我不能使用 Enforce Integrity 的涓滴删除部分。有没有看到“很少”,这对我来说似乎很常见,“不确定”的关系状态。

设计

表1(基表):

领域:

  • 吉德
  • 纳米
  • (更多领域)

索引:

  • gid + nm(唯一标识 - gid 不是自动编号)
  • 吉德

表2(连接表):

领域:

  • 吉德
  • cid
  • (更多领域)

索引:

  • gid + cid(唯一标识)
  • 吉德
  • cid

触发思路:

删除(BeforeDelete 触发器)

  1. 如果(table1.gid 被删除)那么Delete * From Table2 Where gid=delete.id
    • delete缓存表在哪里
  2. 继续验证,直到所有表都已正确更新/删除基表中的 gid 条目

编辑 2012-09-04 @ 12:20pm

好的,这是我现在拥有的数据宏,它可能在语法上很草率,但到目前为止我从在线阅读中推断出的内容。使用这种格式时,有什么我应该注意或期望的吗?是的,deletegroup是在模块中发布的全局方法。

删除数据之前-宏

最终用户将使用运行时访问,运行时环境与完整版本是否应该以任何方式阻碍此触发器?

4

1 回答 1

1

宏的下一步自然是为业务规则提供模型。数据宏允许开发人员将逻辑附加到记录/表事件(类似于 SQL 触发器)。这意味着您在一个地方编写逻辑,并且更新这些表的所有表单和代码都继承该逻辑。以下是您可能会在典型的捐赠管理数据库中找到的一些数据宏场景:

Access 2010 数据宏(类似于触发器)

或者,对于级联删除,考虑根据我对您之前帖子的评论设置关系:在 Access 2007 中引用复合主键

于 2012-09-04T16:26:20.397 回答