MS Access SetFocus无法处理AfterUpdate事件

时间:2017-09-15 16:49:00

标签: ms-access events stored-procedures setfocus

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

我试过了: - 改为在BeforeUpdate中输入消隐。 - 组合框的验证规则为No Null(不识别初始消隐) - 将另一个控件添加到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

enter image description here

更新:我现在所做的解决方法是不知道如何让他们进入选择,将原因和发起人改为“会计错误”/“会计”,然后在那些条目的那些字段中输入验证规则必须在有日期的情况下作出,所以他们要么选择自己作为罪魁祸首,要么做出另一种选择。

Workaround

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

1 个答案:

答案 0 :(得分:1)

原始验证规则正在测试Null。代码将组合框设置为空字符串,空字符串与Null不同。解决问题#34;无法识别初始消隐"尝试将组合框设置为Null而不是空字符串。

我不允许在字段中使用空字符串。

相关问题