Access主带子窗体LinkMasterFields报错:找不到Automation对象TableOne
Access主带子窗体关联报错的解决经验
场景还原
我做了一个带子窗体的主窗体,需求是:
- 主窗体展示
TableOne中符合手动输入编号(即TableOne.ID=[窗体]![用户输入ID])的数据 - 子窗体展示
TableTwo中满足TableOne.ID=TableTwo.ID的数据,而且表间关系已经正确建立了
一开始我在主窗体的属性表-数据选项里这么配置:
Link Master Fields: TableOne.IDLink Child Fields: ID
遇到的报错
结果在子窗体里输入数据的时候,直接弹出报错:
"The LinkMasterFields property setting has produced this error: 'The object doesn't contain the Automation object 'TableOne."
初始困惑
当时我还在纠结是不是记录源的问题:
- 主窗体的记录源是
TableOne筛选后的数据集 - 子窗体记录源是
TableTwo的全量数据 - 不确定要不要把
TableTwo加到主窗体记录源里,或者在子窗体记录源里加上TableOne.ID
最终解决办法
后来才发现坑在哪!主窗体的记录源里还包含了TableThree,这个表也有一个叫ID的字段,直接导致了字段名冲突!
我是这么解决的:
- 先把
TableThree.ID从主窗体的记录源里移除了,避免ID字段的歧义 - 把
TableTwo.ID重命名成了TableTwo.TID,进一步明确字段归属 - 最后按照建议重新配置关联属性:
Link Master Fields: ID(现在主窗体里的ID就是TableOne的ID,没有冲突了)Link Child Fields: TID(对应子窗体里TableTwo的TID字段)
这样调整之后,子窗体输入数据就完全正常了!
内容的提问来源于stack exchange,提问作者user7867367
相关产品推荐
相关产品推荐

