最近我把焦点放在我的子表单上(很多)。出于某种原因,我无法将焦点设置为我的子表单并且它一直给我错误:可以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
的{{1}}上,但这也导致了错误。
然后我尝试将焦点设置在main form
本身的load event
中,但此事件永远不会被触发。
最后,我尝试(这是我离开的地方)将焦点设置在我subform
的{{1}}中(子窗体位于其中一个标签中):
change event
我认为聚焦失败是因为子窗体在设置焦点时尚未加载,这只是一个假设,我认为如果我将焦点设置在标签更改中,这将被修复(然后应该加载子表单)。
P.S。发现了这个主题的多个帖子,但没有找到我的问题或者与我的完全不同。
有任何想法可以解决这个问题吗?提前谢谢!
答案 0 :(得分:1)
我会尝试以下语法:
Forms![frmArtikelen]![frmArtikelSubInkoopHistorie].Form![Tekst33].SetFocus
请注意已添加的感叹号。此外,它可能听起来反直觉,但我相信当表单加载时,子表单在主窗体之前加载。
我不明白你在什么时候想要应用setfocus,以了解事件的去向。
您是否知道您不需要VBA来选择子窗体的选项卡索引为0?然后在子表单中设置选项卡索引,以便tekst33
为0?
答案 1 :(得分:0)
创建新记录后,我试图将注意力集中在子窗体日期上。 顺序代码将焦点放在子表单上,然后子表单字段可能对您有用:
Me.SF_DRL_Scheduling.SetFocus
DoCmd.GoToRecord,acLast'
Me.SF_DRL_Scheduling.Form.DrScDte.SetFocus
答案 2 :(得分:-1)
错误恢复下一个
'第二次不运行下面的代码并引发错误,因此我们需要上面的On Error Resume Next。但是再等一次再运行一次代码,就可以在下面运行所有代码并进行处理
Me.frmArtikelSubInkoopHistorie.SetFocus
Forms![frmArtikelen]![frmArtikelSubInkoopHistorie].Form![Tekst33].SetFocus