Access 2010 - 多个一对多表

时间:2014-06-13 22:10:34

标签: forms ms-access relationships

我正在处理的情况看起来很基本,但我不能让它发挥作用......

情境:

一家公司有许多分支机构,每个分支机构都有许多地址以及许多联系人: Tables relationship

我正在尝试设计多个数据输入表单以填充三个表格中的信息:

公司,公司分支机构,地址(目前不包括联系人,以减少复杂性)。我有几个表单的级联,通过单击CompID来调用Company Details,通过单击BranchID等来调用Branch Details:

First - Companies List

Second - Company Details

Third - Branch Details

Fourth - Address

问题是添加或修改记录。当我单击“公司详细信息”表单中的“添加分支”按钮时,“分支详细信息”表单将显示空白字段,我可以在其中输入新分支的名称(此时BranchAddress子表单为空)。但是当我在输入分支名称后关闭表单时出现错误:

You cannot add or change a record because a related record is required in table 'Companies'.

当我想为分支添加额外地址时也是如此。我做错了什么?

P.S。当我删除CompanyBranches和Addresses表之间的关系时,我可以添加没有错误的分支。

P.P.S。我意识到我可能需要在Add Branch按钮上添加一个用于click事件的宏:

On Click event Macro

3 个答案:

答案 0 :(得分:0)

在我看来,您的外键有问题。您可能想要在保存分支时检查,实际上您在分支中添加了公司的ID。当您删除两者之间的关系时,您不会收到错误,因为分支机构不再需要公司的ID(两个项目现在都不相关)。

答案 1 :(得分:0)

在“分支详细信息”表单属性表的“数据”选项卡下,将Data Entry更改为No

答案 2 :(得分:0)

最后我弄明白我的表格有什么问题。

首先,我必须按照本主题中的建议将CompID添加到Branch Details表单,然后在Company Details表单和Branch Details表单之间建立一个绑定:

在“分支详细信息”表单中,在“数据”选项卡下的“CompID”文本框的属性中,在“默认值”行中,我添加了指向“公司详细信息”表单中的CompID值的链接:= [Forms]![Company Details ]![CompID。现在,这两个表单由CompID值链接,并且在“分支详细信息”表单中输入信息时,此值将从“公司”表中写入CompanyBranches表中的相应记录。

希望我的解释不再比我的问题更令人困惑...... 无论如何,感谢所有参与解决这个问题的人。

P.S。地址详细信息表单也是如此。它必须包含BranchID和Branch Details表单的链接作为BranchID的默认值:= [Forms]![Branch Details]![BranchID]。

enter image description here