【问题标题】:Force validation/update event without leaving ComboBox control在不离开 ComboBox 控件的情况下强制验证/更新事件
【发布时间】:2018-02-28 01:49:59
【问题描述】:

在我有多个输入字段的表单上,Tab/Enter 转到下一个字段,这很好地触发了验证/更新过程。
但是,在我的多页之一上,我有 1 个 ComboBox
我已将其设置为仅接受列表中的元素。
问题是用户在尝试移动到另一个页面时只会收到错误值的错误弹出窗口,因为如果没有其他控件可以跳转,则按 Enter/Tab 不会触发验证
我可以在 _KeyPress_KeyDown 事件中输入什么命令来触发 ComboBox 的验证/更新? 我希望像 me.validateme.update 这样的东西存在。

【问题讨论】:

  • Me.RepaintMe.Refresh?
  • @Vityata Nah,不幸的是 Me.Refresh 在 Excel 中不存在,我认为只是在 Access 中。尝试使用重绘,但仅在视觉上重绘表单,控件不会触发更新事件。还有其他猜测吗?

标签: vba forms validation events triggers


【解决方案1】:

好的,我终于想通了!
在这里找到我的灵感:forum link
也许有更直接的方法..如果您知道,请随时提供。
这也处理了主要的验证,所以最好关闭“MatchRequired”选项!

Private Sub MyControl_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    Select Case KeyCode
        Case 9, 13
            If MyControl = vbNullString Then Exit Sub
            If MyControl.ListIndex < 0 Then
                MsgBox "Choose from list"
                MyControl = vbNullString
                Exit Sub
            End If
    End Select
End Sub

干杯!

【讨论】:

    猜你喜欢
    • 2010-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多