vba - DoCmd.OpenForm 后焦点未设置在正确的字段上
问题描述
我打开一个表格如下。
DoCmd.OpenForm "frmPatient", acNormal, , , acFormEdit, acWindowNormal
通常焦点到达的默认选项卡和字段都可以。但在某些情况下,我想将其设置为不同的字段。我尝试在下一行代码中这样做:
Forms("frmPatient")("cmdLabReport").SetFocus
由于某种原因,这并不完全有效。显示了正确的表单选项卡,但错误的字段正在接收焦点。我怀疑这是因为可能仍在后台执行的干预代码。
解决方案
如果您希望代码.SetFocus
由于事件被触发而触发,请跟进一个或多个DoEvents
.
访问是完全同步的,这意味着:
- 您的代码运行
- 任何侦听由您的代码触发的事件的代码都会运行
如果您的代码触发了一个事件,它会在您的代码完成或您手动运行时得到处理DoEvents
,这允许 Access 处理事件。
请注意,任何相关的事情SendKeys
都是麻烦。如果要将焦点设置到特定选项卡上的特定控件,请执行此操作,不要将焦点设置到选项卡,然后使用SendKeys
将焦点设置到控件。
推荐阅读
- ansible - 为什么 ansible 选项“--private-key”在一台主机上有效,而在另一台主机上无效?
- jekyll - 如何使用 netlify cms 配置 jekyll 来编辑和创建页面
- html - HTML 服务器发送事件
- python - 使用来自另一个 DataFrame 的 Series 映射多个列
- javascript - 我的代码中的画布仅在我的 for 循环之后显示。我在追求动画效果
- java - 我无法为在无头模式下运行的 ChromeDriver 设置 cookie
- netlogo - 如何让一只乌龟一步一步走向另一只乌龟?
- excel - 如何计算数据透视表中的文本 - EXCEL?
- django - PyDev 可以自动补全继承的方法名,但不能自动补全字段名
- azure - Azure 应用程序规模错误:无法更改为目标 SKU“免费”,因为公共证书计数将超过“0”的新限制