【问题标题】:MS Access SetFocus not working on AfterUpdate eventMS Access SetFocus 无法处理更新后事件
【发布时间】:2018-02-24 22:11:22
【问题描述】:

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

我尝试过: - 改为在更新前输入空白。 - Not 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

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

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

【问题讨论】:

  • “不工作”是什么意思 - 错误信息,错误结果,没有任何反应?输入日期后,组合框是否已经获得焦点?设置 TabOrder 属性,可能不需要 SetFocus。
  • 无论我按 Tab 还是 Enter,光标确实会移动到 Change Reason 字段,但我希望它可以防止他们在不进行选择的情况下离开它。我完全使用了错误的功能吗?
  • 尝试使用LostFocus 事件使光标在该字段失去焦点时移动到另一个字段。请注意,在不更改字段时也会触发。 BeforeUpdate 事件是检查输入值是否有效的正确事件,应该被接受。您可以在BeforeUpdate 事件中使用Cancel 参数来拒绝更改。
  • BeforeUpdate 事件不会阻止用户在不输入数据的情况下进入然后离开控制 - 'tabbing through'。因此,使用验证规则应该将它们保留在控件上,直到输入/选择值。如果用户仅限于列出的项目,则不需要组合框 BeforeUpdate。不要使用空字符串来“空白”控件。我不允许在字段中使用空字符串。设置为 Null。
  • @Erika 您能否更清楚地了解您需要帮助的具体问题是什么?

标签: ms-access events stored-procedures setfocus


【解决方案1】:

原始验证规则正在测试 Null。代码将组合框设置为空字符串,空字符串与 Null 不同。要解决“无法识别初始空白”的问题,请尝试将组合框设置为 Null 而不是空字符串。

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

【讨论】:

  • 我真的不明白它是如何回答这个问题的(在我的设置中,Control = "" 将其删除就好了)。你能再详细说明一下吗?现在它对我来说更像是一条评论。
  • 空字符串使控件空白,但验证规则正在测试 Null,并且由于值为空字符串,因此验证当然失败了。这似乎是 Erika 问题的主要根源。
  • 啊,谢谢你的解释。我个人会通过调整验证规则来解决这个问题,但你的方法也应该是有效的。
猜你喜欢
  • 2021-11-08
  • 1970-01-01
  • 1970-01-01
  • 2021-06-25
  • 2019-12-10
  • 2021-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多