不,您当然不需要 子表单。您可以自己编写所有代码来管理与加载相关的记录,更新和删除它们,切换记录,过滤等。
只是子表单是一种非常方便的工具,随时可供您使用。
如果您不得不问这个问题,您可能应该使用子窗体,而不要尝试重新发明轮子。
我实际上已经编写了代码,以一种形式保存大约100条相关记录,而无需使用子表单,同时支持读取和更新,因为它满足了特定的目标,但是我不推荐给任何人 >
,
实际上,您可以编辑由于联接到主表和子表而产生的记录。
要使其正常工作,需要做一些事情。
您必须对子表使用左连接(否则查询将不会返回任何记录。)
只要子表的FK列和父表的PK列都包含在查询中,就可以正常工作。
所以说我们在关系中有这种设置。
请注意,非常关闭其左联接。这允许(并意味着)父记录可以存在,而不是子记录可以存在。
现在建立这样的查询:
请注意前几列是如何从主表中获取的,接下来的三列是如何从子表中获取的。
因此,当您打开查询时,假设没有子记录,那么您将获得以下信息:
请注意,子reocrd不存在。如果我在子表列中输入数据或输入数据(例如发票编号),请移至保存位置,然后得到以下信息:
因此,在上述情况下,数据引擎确实知道要设置的FK值,因为您在一条主记录上。当然,您无法在此处执行的操作是添加多个子记录,因为您无法再次选择或重新输入主记录。但是,如果您单独添加(例如以子表单形式)多个子记录,那么您将得到:
再次,我可以编辑每一行,甚至可以编辑子列。
当然,由于这是左连接,因此每次为每个子记录重复主记录。
您可以绑定此查询并将其用于表单。
因此,这种设置用处不大,因为您不能将新的子记录添加到父记录中,但是您可以肯定地以这种方式编辑此类数据。它确实允许您添加“一个”记录或“编辑”一个子记录。因此,如果子记录不存在,则将其添加。如果子记录存在,则可以再次编辑该子记录中的值。但是,使用此用户界面只能添加一个子记录。
因此,尽管可以进行编辑,但它并不是可用的UI太多。
本文链接:https://www.f2er.com/2870454.html