Access实现按小键盘数字键自动选取组合框或者列表框中对应行的数据

2017-11-07 11:23:00
cg1
转贴
89

在程序中,我们有时需要利用小键盘输入数字快速选定记录

比如实现按小键盘数字键自动选取组合框或者列表框中对应行的数据


在一个组合框中,行来源是值列表为 "文盲;小学;初中;高中;大专;本科;硕士;博士",实现按小键盘的数字键1,就选择“文盲”这行,按8就选择“博士”这行。

详细函数:

Function SelectValue(ByRef ComboOrList As Control, ByVal KeyCode As Integer)
'本函数的作用是根据用户在组合框或者列表框上按的数字小键盘的顺序,
'选择列表前10个中的某一个
    Debug.Print KeyCode
    
    With ComboOrList
        If .ControlType <> acComboBox And .ControlType <> acListBox Then
            Debug.Print "不是组合框或者列表框,无法应用本功能"
            Exit Function
        End If
        If KeyCode >= 96 And KeyCode <= 105 Then '必须是小键盘,0键=96 --> 9键=105
            If .ListCount >= KeyCode - 96 Then
            '如果列表的数量>= 10
                .Value = .Column(.BoundColumn - 1, KeyCode - 96 - 1)
            End If
        End If
        
    End With
End Function



在窗体中放置组合框和列表框,其命名为Combo1和List1,组合框或者列表框的 KEYUP 事件中调用上面一个通用函数。

无论是行来源类型是值列表、表/查询、字段都可以应用。

Private Sub Combo1_KeyUp(KeyCode As Integer, Shift As Integer)
'调用方式如下:
    SelectValue Me.Combo1, KeyCode
End Sub
Private Sub List1_KeyUp(KeyCode As Integer, Shift As Integer)
'调用方式如下:
    SelectValue Me.List1, KeyCode
End Sub


分享