在MS Access的多个控件中使用相同的事件代码

穆罕默德·舒伯

我想使用相同的代码:

Private Sub Text_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode >= 48 And KeyCode <= 57 Then
     'allow
Else
      If KeyCode >= 96 And KeyCode <= 105 Then
          'allow
      Else
           If KeyCode = 8 Or KeyCode = 9 Or KeyCode = 13 Or KeyCode = 27 Or KeyCode = 46 Then
               'allow
           Else: KeyCode = 0
           End If
      End If
End If
End Sub

在以多种形式存在的多个文本框中,而我又不想重复相同的代码,我该如何实现呢?先感谢您

达伦·巴特鲁普·库克(Darren Bartrup-Cook)

正如@Ryan建议的那样-使用一个函数。

将此功能添加到普通模块中:

Public Function AllowKeyCode(KeyCode As Integer, Shift As Integer) As Integer
    Select Case KeyCode
        Case 48 To 57, 96 To 105, 8, 9, 13, 27, 46
            AllowKeyCode = KeyCode
        Case Else
            AllowKeyCode = 0
    End Select
End Function

使用此代码进行keydown事件:

Private Sub Text0_KeyDown(KeyCode As Integer, Shift As Integer)
    KeyCode = AllowKeyCode(KeyCode, Shift)
End Sub

编辑:您可能要更改功能,以考虑到Shift键(停止!,“,£等):

Public Function AllowKeyCode(KeyCode As Integer, Shift As Integer) As Long

    If Shift = 0 Then
        Select Case KeyCode
            Case 48 To 57, 96 To 105, 8, 9, 13, 27, 46
                AllowKeyCode = KeyCode
            Case Else
                AllowKeyCode = 0
        End Select
    Else
        AllowKeyCode = 0
    End If

End Function

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章