Access 2007 使用选项卡将多个子表单链接到主表单的最佳方式
Posted
技术标签:
【中文标题】Access 2007 使用选项卡将多个子表单链接到主表单的最佳方式【英文标题】:Access 2007 best way to link multiple subforms to main form with tabs 【发布时间】:2012-04-23 14:21:05 【问题描述】:我有一个包含 10 个选项卡的主表单,每个选项卡都有一个子表单控件。从所有 10 个选项卡开始作为子窗体,主窗体只有几个附加控件,其中一个是主键。所有子表单的 Recordsource 都包含此主键。显示 OK 但无法添加新记录,因为主窗体上的记录导航不允许移动到新记录,并且主窗体上的新记录按钮不起作用。尝试更改设计,以便第一个选项卡上的所有控件都是主窗体而不是子窗体的一部分。更改了所有子表单记录集,以便它们不包括查询中的 PK,但仅通过主/子属性链接。现在它可以让我导航到新记录(尽管它会在您尝试输入之前提示输入新的 ID 参数),但不会让我编辑现有记录。
那么正确的方法是什么?子窗体上的记录导航打开但在主窗体上关闭? PK 是否作为对记录源的查询的一部分?所有子表单或将第一个选项卡作为主表单的一部分的好主意?有什么建议吗?
【问题讨论】:
我似乎记得您使用 ADO 进行了非标准设置,而不是简单地绑定表,对吗?顺便说一句,我永远不会使用 10 个标签。最好让性能看起来好像您正在使用选项卡,但只需根据需要加载子表单。 我通常将子表单控件留空,并在第一次选择相应选项卡时将表单分配给SourceObject
。
@Remou:不,所有表单/子表单控件都绑定到表格。由于不同的子窗体在不同的时间是相关的,我使用主窗体的 On Load 事件来设置子窗体控件的 SourceObject。
@Chelle:不客气。另外,由于您是 *** 的新手,我想通知您,您可以通过勾选答案旁边的勾号来为好的答案投票并接受对您帮助最大的答案。在本网站上,点赞或接受的答案都算作“感谢”。
【参考方案1】:
主记录的主键 (PK) 应与子记录的外键 (FK) 匹配。
tblCustomer tblOrder +----------------+ +----------------+ | PK 客户ID |1--+ | PK OrderID | +----------------+ | +----------------+ | | +--∞| FK 客户 ID | +----------------+ | | +----------------+在本例中,order-subform-control 的 Link Master Fields
属性必须是 CustomerID
(tblCustomer 中的 PK),Link Child Fields
属性也必须是 CustomerID
(tblOrder 中的 FK)。
【讨论】:
以上是关于Access 2007 使用选项卡将多个子表单链接到主表单的最佳方式的主要内容,如果未能解决你的问题,请参考以下文章
选项卡式控件上的 MS Access 2007 引用子窗体控件返回 null
基于查询的子表单中的字段的 Access 2007 验证帮助