删除触发前删除表中的记录

时间:2012-09-04 16:06:37

标签: ms-access ms-access-2010

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

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

尝试使用他们的"哦,这么有用"关系模式,但因为我无法找到一个独特的" PK设置和索引的索引,我不能使用强制完整性的涓滴删除部分。很少"很少"看来,这似乎对我来说很常见,关系状态不确定"。

设计

表1(基表):

字段:

  • GID
  • 纳米
  • (更多字段)

索引:

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

表2(连接表):

字段:

  • GID
  • CID
  • (更多字段)

索引:

  • gid + cid(唯一标识)
  • GID
  • CID

触发点:

删除(BeforeDelete Trigger)

  1. 如果(table1.gid已删除)则Delete * From Table2 Where gid=delete.id
    • 其中delete是缓存表
  2. 继续验证,直到所有表格都已从基表中正确更新/删除gid的条目
  3. 编辑2012-09-04 @ 12:20 pm

    Ok这是我现在拥有的Data-Macro,它可能是语法上的草率但是我在网上读到的内容到目前为止。使用这种格式时,我应该注意或期望什么?是deletegroup是在模块中发布的globabl方法。

    Before Delete Data-Macro

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

1 个答案:

答案 0 :(得分:1)

  

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

Access 2010 data macros (similar to triggers)

或者,对于级联删除,请考虑根据我对上一篇文章的评论设置关系:Reference to composite primary key in Access 2007