MS Access 嵌套子表单链接到主(父)表单

Posted

技术标签:

【中文标题】MS Access 嵌套子表单链接到主(父)表单【英文标题】:MS Access nested subforms link to main (parent) form 【发布时间】:2011-01-20 05:20:06 【问题描述】:

我正忙于开发一个 MS Access 2007 应用程序,该应用程序需要使用具有相当复杂用户界面的子表单。我知道如何创建父表单并链接到子表单,以便它显示与父表单记录相关的数据,但我的问题是:

如果我有多个嵌套的子表单(比如向下 3 或 4 层),我能否以某种方式将位于 4 层的子表单与位于 1 层的父表单的记录相关联?我所说的嵌套子表单是指将一个表单粘贴到一个表单中,粘贴到另一个表单中,等等。

我希望与父表单链接的子表单当前使用查询作为其源对象,使用嵌套子表单的原因纯粹是为了用户界面的美观。

有没有简单的方法来解决这个问题?或者也许使用 VBA?

【问题讨论】:

我从来没有设计过嵌套的sbuforms,我觉得这会让用户非常困惑。我已经创建了多次向下钻取表单,其中子表单“向下钻取”到另一个带有子表单的表单,该子表单又“向下钻取”并且经常使用选项卡控件来分隔数据。一个示例是带有发票子表单的客户表单。然后发票子表单打开一个发票表单,其中包含一个部分 sbuform。这反过来又打开了一个带有各种子表单的部件表单 【参考方案1】:

许多人没有意识到的一件事是,LinkChild/LinkMaster 字段实际上可以是任何有效的表达式。因此,您可以将 subForm1 的 LinkChild/LinkMaster 属性设置为:

  LinkMaster  CustomerID
  LinkChild   CustomerID

那么 subForm2 可以有这个:

  LinkMaster  subForm1.Form!InvoiceID
  LinkChild   InvoiceID

...等等。我无法想象比这更深入,但这是可能的。

您还可以考虑级联数据表表单是否可以解决问题,使用子数据表。您甚至可以让数据表将非数据表表单显示为其子数据表(当我将具有子表单的父表单切换到数据表视图时,我完全意外地发现了这一点——子表单仍显示在表单视图中)。使用子数据表,您不会遇到表单数量或嵌入连续表单的限制的任何问题。

【讨论】:

谢谢。我最终做的是将前 3 级表单链接到父表单链接到的同一记录集,然后将第 4 级的字段与第 3 级的字段链接。实际上非常简单的解决方案,但我花了足够长的时间来解决它..【参考方案2】:

如果这纯粹是出于审美原因(对您或其他人来说看起来很漂亮),而不是出于功能原因,为什么不直接使用带有“凹陷”特效的矩形呢?

【讨论】:

以上是关于MS Access 嵌套子表单链接到主(父)表单的主要内容,如果未能解决你的问题,请参考以下文章

使用“ng-form”启用/禁用嵌套子表单的角度表单验证

MS Access 子表单的多个分离条件

Access 2007 使用选项卡将多个子表单链接到主表单的最佳方式

MS Access 使用绑定表单更新未绑定表单

MS Access 保留子表单中的 ID 字段,填充父表单中的 ID

VB.NET 创建(类似 MS ACCESS)“链接表单”