Access-控件解析-组合框-02-两个组合框联动

微信公众号原文

系统:Windows 7
软件:Excel 2010 / Access 2010

  • 这个系列介绍常用的控件
  • 包括在界面端的设置及在代码端的实现

Part 1:本篇目标

  1. 本篇介绍的控件为:组合框。涉及功能为:两个组合框联动

功能动图

Access-控件解析-组合框-02-两个组合框联动_第1张图片
1.gif

Part 2:实现功能

  1. 手动设置组合框下拉列表:广东,湖南
  2. 组合框变化时,组合框下拉列表随之变化
  3. 这里组合框有3个事件,都引起组合框下拉列表变化,包括更改键按下进入三个事件。具体哪些事件会触发,根据需要自己制定。一般来说这三种即可

界面

Access-控件解析-组合框-02-两个组合框联动_第2张图片
1.png

3类事件

Access-控件解析-组合框-02-两个组合框联动_第3张图片
2.png

Part 3:代码

事件代码

Private Sub cbo1_Change()
    frmName = Me.Name

    Call sMod_通用库_01_零件名称下拉列表(frmName)
End Sub

Private Sub cbo1_Enter()
    frmName = Me.Name

    Call sMod_通用库_01_零件名称下拉列表(frmName)
End Sub

Private Sub cbo1_KeyDown(KeyCode As Integer, Shift As Integer)
    frmName = Me.Name

    Call sMod_通用库_01_零件名称下拉列表(frmName)
End Sub

实际动作

Sub sMod_通用库_01_零件名称下拉列表(frmName)
    Dim ctrl
    Dim frm
    Dim ctrlName
    
    Set frm = Forms(frmName)
    
    Set ctrl = frm.Controls("cbo1")
    sheng = ctrl.Value
    
    ctrlName = "cbo2"
    Set cbo = frm.Controls(ctrlName)
    
    If sheng = "广东" Then
        cbo.RowSource = ""
        cbo.Value = ""
        
        arr = Array("广州", "深圳", "东莞", "佛山")
        For Each x In arr
            cbo.AddItem x
        Next
    ElseIf sheng = "湖南" Then
        cbo.RowSource = ""
        cbo.Value = ""
        
        arr = Array("长沙", "湘潭", "株洲", "郴州")
        For Each x In arr
            cbo.AddItem x
        Next
    End If
    
End Sub

代码截图

Access-控件解析-组合框-02-两个组合框联动_第4张图片
3.png

代码位置:将通用代码写在模块内了,方便代码复用

Access-控件解析-组合框-02-两个组合框联动_第5张图片
4.png

Part 4:部分代码解读

  1. 虽然本示例中涉及3个事件,但只是触发不一样,但引起的结果是一样的,所以将共用代码写在了模块内
  2. frmName = Me.Name,获取当前窗体名称,该代码必须放在对应的窗体中才有效

本文为原创作品,如需转载,可加小编微信号learningBin


更多精彩,请关注微信公众号
扫描二维码,关注本公众号

Access-控件解析-组合框-02-两个组合框联动_第6张图片
公众号底部二维码.jpg

你可能感兴趣的:(Access-控件解析-组合框-02-两个组合框联动)