gpt4 book ai didi

ms-access - 如何处理 Access 中插入的引用完整性

转载 作者:行者123 更新时间:2023-12-04 06:14:48 26 4
gpt4 key购买 nike

我正在处理从同事那里接手的 Access 项目。存在三个表:rules , overviewrelationship . relationship table 有两个字段,每个字段都是一个外键,链接到其他两个表中的主键。我有 rules 的数据表 View 表格中的表格,我可以在其中毫无问题地删除记录。但是,当我尝试将记录插入 rules 时表,记录将插入到rules表,但没有插入到 relationship 中的匹配记录 table 。我选中了“强制参照完整性”,以及“级联更新相关字段”和“级联删除相关记录”。我做了一个天真的假设,这将处理插入,但显然我错了。所以我现在想知道处理这个问题的最佳方法 - 我是否为 After Insert 编写了一些 VBA将记录插入到 relationship 中的表单事件相应的表?

最佳答案

通常的方法是使用一个表单将记录插入到基于包含关系表的查询的规则中,或者使用一个允许用户选择相关概览的组合,或者使用一个表单/子表单设置合适的主/子字段。在 NorthWind 示例数据库中,Order Detail 表是您的关系表的一个示例,它使用了令人厌恶的查找表反功能,但您可能会得到一些用于进一步研究的想法。

选项 1 的更详细描述



概述
ID
概述

规则
ID
规则

关系
RulesID ) 由两个 FK 组成的 PK
概览ID )

关系

Relations

数据

Data

建议 1 查询设计

请注意,来自关系的两个字段都包含在查询中。没有必要显示规则中的 ID,因为它是一个自动编号字段,但为了简单起见,将其包含在此处。

如果删除一行,则两个表中的记录都将被删除。

Query Design

您不能违反参照完整性。您需要先创建所有概览,然后才能使用,或者提供不同的添加概览的方法。

Violate Integrity

如果您更新 RulesIDOverviewID ,一条记录将添加到关系表中,但不会添加到规则中。

New Relationship record

如果您更新 OverviewIDRule ,记录将添加到关系和规则中。

New Rule and Relationship records

如果您创建一个连续的表单,您就可以以更加用户友好的方式获得以上所有内容,并具有更多控制权。您可以使用组合框来允许用户选择更友好的概览描述,而不是 ID,您可以利用 NotInList 事件添加新的概览。

continuous Form

请注意,到目前为止,这还不需要一行代码。这就是 Access 的力量。

关于ms-access - 如何处理 Access 中插入的引用完整性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7397949/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com