首页 > 解决方案 > 如何仅在 VBA Access 中捕获 vbKeyReturn

问题描述

textbox在 a 中有一个控件,subForm它是 a singleForm。但是,当我按下enter键时,它会添加一个new record,而前一个会record隐藏起来。我form property已经设置为current record.

我使用下面的代码来捕获enter密钥,这很有效。

Private Sub txt_1_KeyDown (KeyCode As Intger, Shift as Integer)

Select case KeyCode
    Case vbKeyCode
        KeyCode = 0
        Me.parent.Combo.SetFocus
End Select

End Sub

但是,现在我无法在其中添加new lineusing Ctrl + Entertextbox因为一旦我按下代码就会触发enter。有人可以帮助如何更改上面的代码,以便它只捕获enterkey 并保持默认的 Access 行为,即在按下时添加新行Ctrl + Enter

标签: vbams-access

解决方案


您将需要一个条件表达式测试:

  • 键(EnterASCII 字符 13)已被按下
  • 事件处理程序的 Shift 参数为零,表示没有Ctrl, Shift,Alt已与Enter键一起按下。

代码可能如下所示:

Private Sub txt_1_KeyDown(KeyCode As Intger, Shift As Integer)
    If KeyCode = 13 And Shift = 0 Then
        KeyCode = 0
        Me.Parent.Combo.SetFocus
    End If
End Sub

推荐阅读