今天是七夕,七夕快乐,大家今天有没有人约呢?
相信大部分的Access玩家都是玩Excel的高手,很多的功能在Excel中实现对大家来说都是小菜,比如今天要讲的联动。
那么,我们现在就来讲一下在Access中怎么用一张表实现组合框的联动。我们用最具有代表性的省市区县来举例。
1新建表具体的表如下图:
2建窗体具体的窗体如下:
组合框省的属性:
行来源:SELECT Province FROM tbl_Area GROUP BY Province
或者
行来源:SELECT Distinct Province FROM tbl_Area
限于列表:是
允许编辑值列表:否
另外两个组合框的设置除了行来源外,其他属性与省份的组合框一样
3添加代码 1Private Sub 省_AfterUpdate()
2 '方法一
3 Me.市.RowSource = "SELECT Distinct City FROM tbl_Area where Province='" & Me.省 & "' "
4 '方法二
5 ' Me.市.RowSource = "SELECT City FROM tbl_Area where Province='" & Me.省 & "' group by City"
6 Me.市.SetFocus '获得焦点
7 Me.市.Dropdown '自动展开
8End Sub
9
10Private Sub 市_AfterUpdate()
11
12 Me.区县.RowSource = "SELECT County FROM tbl_Area where City='" & Me.市 & "'"
13 Me.区县.SetFocus
14 Me.区县.Dropdown
15End Sub
注意:大家应该能看到,为什么省与市的行来源需要Group By 或者Distinct。如果不加的话会出现下图的情况:
没错,就是为了去重,因为我们这里只用一张实现,因省、市数据不是唯一的,所以要去掉重复的数据。
或者也可以这样做:
另外还有一种方法,是将条件写在行来源中,如下图:
你以为这样做了就不需要添加代码了,错了,我们还需要在组合框的更新后事件添加如下代码:
1Private Sub 省_AfterUpdate()
2 Me.市.SetFocus
3 Me.市.Dropdown
4 Me.市.Requery
5End Sub
上面两种方法,我更喜欢第一种,因为便于调试,你们觉得呢。
好了!讲到这里,用一张表实现三级联动的示例就讲完了,大家针对上面所讲的,结合实际是否可以做一个四级联动,五级联动?大家快去试一下吧!
连组合框都在联动了,你怎么还没有人和你联动?
我就知道你“在看”