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


Part 1:本篇目标

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

功能动图

图片

Part 2:实现功能

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

界面

图片

3类事件

图片

Part 3:代码

事件代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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

实际动作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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

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

图片

Part 4:部分代码解读

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