最近我把焦点放在我的子表单上(很多)。出于某种原因,我无法将焦点设置为我的子表单并且它一直给我错误:可以not find the field '|1' referred to in your expression
我尝试了多种方式来设置焦点但是所有这些都不起作用。
到目前为止我尝试了什么:
Forms("frmArtikelSubInkoopHistorie").SetFocus
(将焦点直接设置为子表单)[Forms]![frmArtikelen].[frmArtikelSubInkoopHistorie].SetFocus
(参考其主要形式将焦点设置为子表单)[Forms]![frmArtikelen].[frmArtikelSubInkoopHistorie].SetFocus
[Forms]![frmArtikelen].[frmArtikelSubInkoopHistorie].[Form].[Tekst33].SetFocus
(首先设置焦点到子窗体本身,然后将焦点设置到子窗体控件)首先,我试图将焦点放在Load event
的main form
上,但这也导致了错误。
然后我试着将焦点设置在load event
本身的subform
上,但这个事件永远不会被解雇。
最后,我尝试(这是我离开的地方)将焦点设置在我的change event
的tab control
中(子窗体位于其中一个选项卡中):
Private Sub TabbestEl91_Change()
On Error GoTo eri
Select Case TabbestEl91
Case 3 'Inkoop Historie
'Forms("frmArtikelSubInkoopHistorie").SetFocus
[Forms]![frmArtikelen].[frmArtikelSubInkoopHistorie].SetFocus
[Forms]![frmArtikelen].[frmArtikelSubInkoopHistorie].[Form].[Tekst33].SetFocus
End Select
eri:
MsgBox (Err.Number)
MsgBox (Err.description)
End Sub
我认为聚焦失败是因为子窗体在设置焦点的那一刻还没有加载,这只是一个假设,我认为如果我将焦点设置在标签更改中这将被修复(子窗体应该加载到时)。
附:发现了关于这个主题的多个帖子,但没有找到我的问题或者与我的完全不同。
有什么想法来解决这个问题?提前致谢!
我会尝试以下语法:
Forms![frmArtikelen]![frmArtikelSubInkoopHistorie].Form![Tekst33].SetFocus
请注意已添加的感叹号。此外,它可能听起来反直觉,但我相信当表单加载时,子表单在主窗体之前加载。
我不明白你在什么时候想要应用setfocus,以便了解事件的去向。
您是否意识到您不需要VBA来选择子窗体的选项卡索引为0?然后在子窗体中设置制表符索引,使tekst33
为0?
在创建新记录后,我尝试将注意力设置在我的子表单日期上。顺序代码将焦点设置在子窗体上,然后子窗体字段可能适合您:
Me.SF_DRL_Scheduling.SetFocus
Dakamadagotorekarda,aklasta“
Me.SF_DRL_Scheduling.Form.DrScDte.SetFocus