从主窗体引用子窗体错误
Posted
技术标签:
【中文标题】从主窗体引用子窗体错误【英文标题】:Reference a subform from main form Error 【发布时间】:2018-04-13 13:59:49 【问题描述】:我一定是疯了。出于某种原因,我无法让这个简单的程序起作用。这是一个下拉菜单,用户可以在其中选择他们想要查看的数据。我只需要它来更改子表单的记录源并刷新它。它基本上只是用一个过滤后的查询替换另一个。似乎无法通过主窗体访问子窗体。不确定这是否是最好的方式,但这是我知道的方式。
Private Sub PeriodSelect_Change()
If PeriodSelect.Value = "Active" Then
Me!ServiceWindow.SbfmService_Item.RecordSource = Service_Active
ServiceWindow.Requery
Else
If PeriodSelect.Value = "PDI" Then
Me!ServiceWindow.SbfmService_Item.RecordSource = Service_PDI
ServiceWindow.Requery
End If
End If
End Sub
我收到错误 438 对象不支持此属性或方法。无法完全弄清楚我错过了什么。
非常感谢任何帮助。
【问题讨论】:
只是检查低悬的果实,但是当您这样做时您确实打开了 ServiceWindow 表单,对吗?子表单是否也打开/可见/活动? 是的。都活跃。子表单是开放的,默认情况下,记录源是“Service_Active”。数据可见。当您从下拉菜单中选择“PDI”时,会出现错误。 我很确定您在分配记录源的查询中只需要双引号。 Me!ServiceWindow.SbfmService_Item.RecordSource = "Service_PDI" 【参考方案1】:您试图在子窗体控件上设置RecordSource
,而不是在子窗体控件内的窗体上。使用Form
属性访问该表单:
Private Sub PeriodSelect_Change()
If PeriodSelect.Value = "Active" Then
Me!ServiceWindow.SbfmService_Item.Form.RecordSource = "Service_Active"
ServiceWindow.Requery
Else
If PeriodSelect.Value = "PDI" Then
Me!ServiceWindow.SbfmService_Item.Form.RecordSource = "Service_PDI"
ServiceWindow.Requery
End If
End If
End Sub
【讨论】:
我投了赞成票,因为我相信这是正确的,哈哈。几个月前我更新了一些子表单记录源,但目前我无法访问该代码。除非我自己验证了它是否有效,否则我不会发布答案,因此我对 OP 的“非常肯定”评论。以上是关于从主窗体引用子窗体错误的主要内容,如果未能解决你的问题,请参考以下文章