MS Access SetFocus 不适用于 AfterUpdate 事件

MS Access SetFocus not working on AfterUpdate event

我在表单上有三个相关字段:一个用于输入日期的文本框 [Qtr1Date1] 和两个带有原因选择 [Qtr1Date1Reason] 和发起者选择 [Qtr1Date1Changer] 的组合框。当用户更改日期文本框时 - 我有 AfterUpdate 事件更改组合框的颜色并将它们消隐。我希望用户被引导在每个选项中选择一个选项(以更新审计跟踪)并且在这样做之前无法继续。我看过其他几篇关于 SetFocus 不起作用以及关键选择顺序的帖子,但我不确定为什么我的不起作用。我可以单击表单上的其他字段。

我试过: -改为在 BeforeUpdate 中输入消隐。 -非空组合框的验证规则(不识别初始消隐) - 将另一个控件添加到 setfocus 以取消命令键事件,然后设置回所需的设置焦点控件

Private Sub Qtr1Date1_AfterUpdate()
     Call LogChanges(StoreCode)
     Qtr1Date1Reason = ""
     Qtr1Date1Changer = ""
     Qtr1Date1Reason.BackColor = RGB(244, 66, 113)
     Qtr1Date1Changer.BackColor = RGB(244, 66, 113)
     Me.Qtr1Date1Reason.SetFocus
End Sub

更新:为了解决不知道如何让他们输入选择的问题,我现在所做的是将原因和发起者更改为 "Accounting Error" / "Accounting",然后在其中输入验证规则如果有日期,则必须输入这些字段,因此他们要么选择自己作为罪魁祸首,要么做出其他选择。

Private Sub Qtr1Date1_AfterUpdate()
     Call LogChanges(StoreCode)
     Qtr1Date1Reason = "Accounting Error"
     Qtr1Date1Changer = "Accounting"
     Qtr1Date1Reason.BackColor = RGB(244, 66, 113)
     Qtr1Date1Changer.BackColor = RGB(244, 66, 113)
     Me.Qtr1Date1Reason.SetFocus
End Sub

原始验证规则正在测试 Null。代码将组合框设置为空字符串,而空字符串与 Null 不同。要解决 "does not recognize initial blanking out" 的问题,请尝试将组合框设置为 Null 而不是空字符串。

我不允许字段中有空字符串。