2016-02-25 47 views
1

我有一个父表(评估)与两个子表定义1对1关系。为了确保永远不会添加没有父项的子行,我想在这种情况下向子表添加插入触发器(ConsequenceAssessment)。以下的结果评估BeforeChange触发器触发,但我找不到如何引用INSERTED行集。有一个OLD记录集用于更新;但是,如何访问插入的行。以下是我的最佳尝试 - 但是,ConsequenceAssessment表尚未包含新行,因此触发器总是触发RaiseError。访问2010插入触发器

更新:刚刚发现我可以在Access中实现一对一关系时的参照完整性(新手误解)。我仍然想知道如何访问更新的记录集。对于MS SQL Server,这是通过在INSERT触发器范围内可用的INSERTED表来实现的。那么,MS Access中的等效物是什么?

enter image description here

+1

在Before Before数据宏中,[fieldname]引用新值和[old]。[fieldname]引用旧值(对于插入将为空值)。在[ConsequenceAssessment]表中,[id]字段是该表的主键?如果它是一个涉及[评估](父)表的外键,我会期望它有一个名称,如[AssessmentID]。 –

+0

谢谢 - 这回答我的问题。 – tnt

回答

1

在变更前的资料宏,[fieldname]指的是新价值和[old].[fieldname]指的是旧值(这将是空的插入)。

在您的特定情况下,[ConsequenceAssessment].[id]似乎是该表的主键,而不是涉及[Assessment](父)表的外键。所以,查找只是在父表中搜索错误的键值。