无法引用子窗体以重新填充记录源运行时错误 2450 无法找到主窗体

Posted

技术标签:

【中文标题】无法引用子窗体以重新填充记录源运行时错误 2450 无法找到主窗体【英文标题】:Cant reference the subform to repopulate the recordsource Runtime Error 2450 Cant find the main form 【发布时间】:2020-10-12 21:22:31 【问题描述】:

我有一个主窗体 Groups_Members,其中有 2 个子窗体作为数据表 GroupsMembers。我正在尝试根据 Groups 子表单中的选定行填充 Members 子表单。

我在子表单 Groups 中,此代码适用于根据所选行重新填充记录源的表单 Members(更准确地,通过单击 id 字段,这不是我真正想要的,但这是一个更美观的问题):

Private Sub ID_Click()
    Dim SQLsource As String
    
    SQLsource = "SELECT [tPerson].[ID], [tPerson].[Anrede], [tPerson].[TitelVorn], [tPerson].[Vorname], [tPerson].[Nachname], [tPerson_Funktion].[Funktion], [tPerson_tInstitution].[Wochenstunden], [tPerson_tInstitution].[tInstitution_ID] " & _
                "FROM (tPerson INNER JOIN tPerson_tInstitution ON [tPerson].[ID] =[tPerson_tInstitution].[tPerson_ID]) INNER JOIN tPerson_Funktion ON [tPerson].[ID] =[tPerson_Funktion].[tPerson_ID] " & _
                "Where [tPerson_tInstitution.tInstitution_ID] = " & CurrentRecord & " ;"
    
    If CurrentProject.AllForms("Members").IsLoaded = True Then
        Forms("Members").RecordSource = SQLsource        
    End If
End Sub

但是,将其调整为适用于 MainForm“Groups_Members”中的子表单“Members”并没有成功,我无法弄清楚原因。

这个

Forms!["Praxen_und_Mitarbeiter"]!["Mitarbeiter"].Form.RecordSource = SQLsource

给我一​​个运行时错误 2450 找不到表单 Groups_Members 尽管表单就在我面前。

还有这个

Me.Parent!("Mitarbeiter").Forms.RecordSource = SQLsource

提示类型不匹配错误

我显然遗漏了一些东西,如果有人指出我的错误,我将不胜感激。

【问题讨论】:

子表单容器是否名为 Mitarbeiter?如果代码在 Group 子表单后面:Me.Parent.Mitarbeiter.Form.RecordSource。评论fmsinc.com/MicrosoftAccess/Forms/Synchronize/LinkedSubforms.asp 【参考方案1】:

June7 提供的链接中描述的解决方法有效:https://www.fmsinc.com/MicrosoftAccess/Forms/Synchronize/LinkedSubforms.asp

短版:在主窗体上创建一个不可见的控件元素,并将控件源属性设置为子窗体 A 中的值。然后将子窗体 B 中的值对应到此控件元素。

这提供了预期的效果。引用的奇怪问题仍未解决,但那是另一次了。

感谢所有投入时间的人,感谢 June7 提供的解决方案。

【讨论】:

以上是关于无法引用子窗体以重新填充记录源运行时错误 2450 无法找到主窗体的主要内容,如果未能解决你的问题,请参考以下文章

在子窗体中引用控件

当引用表中没有匹配的记录时,delete语句如何与REFERENCE约束冲突?

在展开父表单的第一行之前,无法引用 Access 子表单表单对象

从 Access 中的另一个子窗体更改子窗体的记录源

检查 Access 2010 导航子窗体是不是打开

如何从主窗体更新子窗体中的图像框控件源