无法引用子窗体重新填充记录源 运行时错误 2450 找不到主窗体
Cant reference the subform to repopulate the recordsource Runtime Error 2450 Cant find the main form
我有一个主窗体 Groups_Members,其中有 2 个子窗体作为数据表 Groups 和 Members.我正在尝试根据 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
然而,在主窗体“Groups_Members”中将其调整为适用于子窗体“成员”并未成功,我也无法弄清楚原因。
这个
Forms!["Praxen_und_Mitarbeiter"]!["Mitarbeiter"].Form.RecordSource = SQLsource
给我一个运行时错误 2450 找不到表格 Groups_Members 尽管表格就在我面前。
还有这个
Me.Parent!("Mitarbeiter").Forms.RecordSource = SQLsource
提示类型不匹配错误
我显然遗漏了一些东西,非常感谢任何人指出我的错误。
June7 提供的 link 中描述的解决方法有效:https://www.fmsinc.com/MicrosoftAccess/Forms/Synchronize/LinkedSubforms.asp
精简版:在主窗体上创建一个不可见的控件元素,并将控件源属性设置为子窗体A中的值。然后Link将子窗体B中的值对应到该控件元素.
这提供了预期的效果。参考问题仍未解决,但那是另一次。
感谢所有投入时间的人,感谢 June7 提供的解决方案。
我有一个主窗体 Groups_Members,其中有 2 个子窗体作为数据表 Groups 和 Members.我正在尝试根据 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
然而,在主窗体“Groups_Members”中将其调整为适用于子窗体“成员”并未成功,我也无法弄清楚原因。
这个
Forms!["Praxen_und_Mitarbeiter"]!["Mitarbeiter"].Form.RecordSource = SQLsource
给我一个运行时错误 2450 找不到表格 Groups_Members 尽管表格就在我面前。
还有这个
Me.Parent!("Mitarbeiter").Forms.RecordSource = SQLsource
提示类型不匹配错误
我显然遗漏了一些东西,非常感谢任何人指出我的错误。
June7 提供的 link 中描述的解决方法有效:https://www.fmsinc.com/MicrosoftAccess/Forms/Synchronize/LinkedSubforms.asp
精简版:在主窗体上创建一个不可见的控件元素,并将控件源属性设置为子窗体A中的值。然后Link将子窗体B中的值对应到该控件元素.
这提供了预期的效果。参考问题仍未解决,但那是另一次。
感谢所有投入时间的人,感谢 June7 提供的解决方案。