填充一个多到多台访问(populate a many-to-many table with acce

2019-08-03 05:12发布

我有两个表( personsprojects ),其是在一个多到许多表中,因此由第三个表连接在一起persons_projects

在MS Access我现在创造出从数据的表单projects表。

我要的是有显示所有子窗体persons -其中的数据集参与这个项目。 在此窗体应该也可以从该项目的下拉似乎这里的最佳选择加入(或删除)的人。

我怎样才能做到这一点? 我可以向所有的参与者,但我不能添加。 好像我再次有“插入视图”的问题,因为我需要persons ,并persons_projects以显示正确的数据集。 但我只改变/在一个表中添加行( persons_projects )我不明白为什么访问是淫荡一次。

Answer 1:

你不应该需要的人,只有persons_projects。 我认为persons_projects包括:

person_id  -> FK  ) Combined as PK, perhaps, if not, an autonumber PK
project_id -> FK  )

和(推荐)一个日期时间戳和用户字段。

子窗体设置了PROJECT_ID的链接子和主数据字段,这将是访问自动完成,类似的组合框:

Control Source: person_id
Row Source: SELECT person_id, surname & " " & forename, some_field FROM persons
Bound Column: 1
Column Count: 3 
Column Widths: 0cm;2cm;2cm 

编辑点评重

这是可能的,但往往有点难度,包括两个表,并有一个可更新的记录,查询(视图)应包括从接线表都PROJECT_ID和为person_id。



Answer 2:

听起来就像是人的驾驶数据集在这里,因为你希望能够将它链接到多个项目,以及删除个人记录。

底座上的个人表的形式。 子窗体应根据该person_projects表,并通过相应的ID的链接。 您可以在子窗体中的专案编号使用组合框,并有一些其他字段中显示,以便用户可以识别项目(名称?)。 你可能想显示所有的这种形式对每个项目的项目数据,但你会发现它变得非常混乱给用户。 拥有一个独立的表格,你可以“弹出”给予更多的项目信息,可能是一个更好的选择。

如果你想删除一个人,你可以从人员表中删除,但你必须决定是否要在person_projects表中的任何孤立记录(你应该不是)。 这很容易在Access中建立的借鉴完整性的链接(级联更新和删除可选)。 这取决于你对如何强大的这种需要是。



文章来源: populate a many-to-many table with access