如何将子表单中一个字段的行值保存到主表单记录? - 使用权

问题描述

我有一个父表单 (frmGroupSession),它在数据表视图中有一个子表单 (SubFormParticipants)。该子表单基于一个查询,该查询选择在特定日期 [GroupSessionDate] 参加特定组 [GroupID] 的所有参与者([CLIENT ID]、[NAME]、[ATTENDED])。父表单保存到记录组会话 (tblGroupSessionLog) 的表中。我需要将组的参与者 [CLIENT ID] 保存到 tblGroupSessionLog 中的记录

基本上,我需要将数据从子表单传递到 tblGroupSessionLog 中的记录。如果可能的话,我不确定最有效的方法是什么。理想情况下,我希望每个唯一的参与者 [CLIENT ID] 存储在 tblGroupSessionLog 中的自己的字段中。如果子表单中有 20 个参与者,那么第一列/字段 [CLIENT ID] 中的每一行值将传递到 tblGroupSessionLog 中的相应字段([ClientID1] 到 [ClientID20])

我对此比较陌生。即使问这个问题也很困难。

我不确定我还能提供什么来帮助您解决问题,但请告诉我,我会的。

想法?想法?

解决方法

Access 101:您有一个多对多的关系 您应该查找该术语,但简而言之,它意味着客户端可以属于多个组,并且每个组可以有多个客户端。 (因此将您的数据组合成类似于以下内容的规范化结构: enter image description here

第一个提示确保在数据库工具下添加关系(您应该查找)。 Access 需要知道表是如何关联的,以便在后台管理密钥,有时当 Access 已经知道关系结构时,它会做出关于自动表单创建的更好决策。一旦您的数据结构正确,访问就可以很容易地产生功能,如果远远少于样式数据输入表单,也可以用作更糟糕的搜索表单。例如,单击任何表格并点击功能区上的创建表单,访问将创建您的数据输入表单。 enter image description here

基本样式提示 1:始终从表单中删除 ClientID 等主键字段。该字段仍然存在于由访问管理的表单记录源中。用户几乎不需要看到任何表键。这为您提供了一个基本的数据输入表单,您还可以使用该表单滚动浏览您使用 frmClients 底部圈出的记录选择器输入的任何客户端。
enter image description here

使用记录选择器看看它是如何工作的。特别是越过最后一条记录,您会发现您可以输入新客户,访问将自动为他们提供一个 ClientID。您还可以循环浏览您的客户并使用此表单更新它们,这并不时尚。以同样的方式,我们可以为组表制作一个表格。
您以与其他方式相同的方式为 frmGroupSessions 表创建一个表单,但添加一个步骤。将包含 ClientID 和 GroupID 的文本框替换为人类可读的组合框。这是一个帮助解决此问题的链接:https://www.google.com/search?q=access+change+text+box+to+combo+box&oq=access+change+text+&aqs=chrome.0.0i457j0l2j69i57j0j0i22i30l2.7503j0j1&sourceid=chrome&ie=UTF-8#kpvalbx=_r0sFYJ7vBcfY5gLz2aTgBw15

enter image description here

变成:

enter image description here

此时玩转学习。使用 frmGroupSessions 底部的 Record Selector 添加和修改数据。玩桌子,看看会发生什么。开始弄乱表单属性,尤其是默认视图。很快您就会有关于如何改进表单的想法,并且您可以开始弄清楚如何设计它们的样式。