Access vba .setfocus未将焦点设置在文本框上

问题描述 投票:0回答:2

在一个数据库表单代码中生成新记录:

Me.Section(0).Visible = True

DoCmd.GoToRecord , , acNewRec

Me!ExhibitName.SetFocus

但是焦点未设置在数据文本框ExhibitName上。焦点无处可见。

在另一个数据库中,完全相同的代码(文本框为DistributorName除外)确实将焦点放在正确的数据输入框上。

在失败的情况下,如果我进入立即窗口并输入Forms!ExhibitForm!ExhibitName.setfocus<Enter>,则焦点确实转到了正确的数据输入文本框。

如果我在Me!Exhibit.SetFocus之后捕获指令并在立即窗口中执行Me!ExhibitName.setfocus<Enter>命令,然后继续执行,则焦点正确。

感觉在上述顺序中的第二和第三命令之间需要一些不确定的延迟。要么就是我无法在某个地方设置一些控件来实现它。

任何想法?

vba ms-access setfocus
2个回答
0
投票

一种解决方法是将焦点移到另一个控件,然后再移回第一个控件。像这样:

DoStuff
Me.Section(0).Visible = True
DoCmd.GoToRecord , , acNewRec
Me.anotherControl.SetFocus
Me.ExhibitName.SetFocus

0
投票

这不起作用:我!另一个Control.SetFocus我!ExhibitName.SetFocus

这确实有效:设定焦点我!ExhibitName.SetFocus

谢谢!

© www.soinside.com 2019 - 2024. All rights reserved.