在一个数据库表单代码中生成新记录:
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>
命令,然后继续执行,则焦点正确。
感觉在上述顺序中的第二和第三命令之间需要一些不确定的延迟。要么就是我无法在某个地方设置一些控件来实现它。
任何想法?
一种解决方法是将焦点移到另一个控件,然后再移回第一个控件。像这样:
DoStuff
Me.Section(0).Visible = True
DoCmd.GoToRecord , , acNewRec
Me.anotherControl.SetFocus
Me.ExhibitName.SetFocus
这不起作用:我!另一个Control.SetFocus我!ExhibitName.SetFocus
这确实有效:设定焦点我!ExhibitName.SetFocus
谢谢!