三级联动下拉列表怎么实现_一张表实现三级联动

b1f9bb16d770db10fc3ec5d489d6843e.png

今天是七夕,七夕快乐,大家今天有没有人约呢?

相信大部分的Access玩家都是玩Excel的高手,很多的功能在Excel中实现对大家来说都是小菜,比如今天要讲的联动。

那么,我们现在就来讲一下在Access中怎么用一张表实现组合框的联动。我们用最具有代表性的省市区县来举例。

1新建表

具体的表如下图:

6b2dff5eb7c8c4934eabb8fd43a7e5be.png

2建窗体

具体的窗体如下:

99eb6182e8ae6e013de1b0e9b1437ed0.png

组合框省的属性:

行来源: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。如果不加的话会出现下图的情况:

10919d5b26bc8d5a0c40c69737057748.png

没错,就是为了去重,因为我们这里只用一张实现,因省、市数据不是唯一的,所以要去掉重复的数据。

或者也可以这样做:

bcd9ba06d5ba7936d69fb255d323f5f1.png

另外还有一种方法,是将条件写在行来源中,如下图:

591e89cefb03cc5a1ef538cef599b94c.png

你以为这样做了就不需要添加代码了,错了,我们还需要在组合框的更新后事件添加如下代码:

1Private Sub 省_AfterUpdate()
2    Me.市.SetFocus
3    Me.市.Dropdown
4    Me.市.Requery
5End Sub

上面两种方法,我更喜欢第一种,因为便于调试,你们觉得呢。

好了!讲到这里,用一张表实现三级联动的示例就讲完了,大家针对上面所讲的,结合实际是否可以做一个四级联动,五级联动?大家快去试一下吧!

连组合框都在联动了,你怎么还没有人和你联动?9c0650e31f21a7876efc00f43969e27f.png25abddbbc8187c25b0e138096368c25a.png

f30eebfe314f132d0f3d412ee2c138b5.png

我就知道你“在看” 146b44bbd5525d68dc21428b1a05220b.gif
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值