ACCESS组合框联动查询.docx

上传人:b****5 文档编号:3729000 上传时间:2022-11-25 格式:DOCX 页数:9 大小:176.17KB
下载 相关 举报
ACCESS组合框联动查询.docx_第1页
第1页 / 共9页
ACCESS组合框联动查询.docx_第2页
第2页 / 共9页
ACCESS组合框联动查询.docx_第3页
第3页 / 共9页
ACCESS组合框联动查询.docx_第4页
第4页 / 共9页
ACCESS组合框联动查询.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

ACCESS组合框联动查询.docx

《ACCESS组合框联动查询.docx》由会员分享,可在线阅读,更多相关《ACCESS组合框联动查询.docx(9页珍藏版)》请在冰豆网上搜索。

ACCESS组合框联动查询.docx

ACCESS组合框联动查询

组合框之间的联动

创建一个"乡镇村屯窗体",新建一个就行了,如下图

3.在窗体中加入三个组合框,如下图

4.打开"乡"组合框的属性表,更改名称,例如我将它改名为"乡名"

行来源类型设置为:

表/查询

点击行来源右边的"..."按钮,目的设置行来源

5.加入地址表,双击乡字段,这样乡的行来源就设置完毕了

6.按上面提到的方法设置村组合框的行来源,在这里要添加二个字段,一个是村,另一个是乡,在准则中写入条件:

froms!

窗体名!

控件名

写入条件的目的是以乡组合框的值进行筛选,这是关键!

!

7.以上面同样的方法设置屯组合框的行来源,在这再增加屯字段,在村字段的准则中再增加准则,如下图

到止,三个组合框的设置已经完毕,但组合框还不可以联动的,必须在各控件的更新事件写入刷新代码才能联动,代码在下面讲述

8.在乡组合框属性中,点击更新后右边的"..."按钮,写入事件过程

其更新后事件的代码如下:

PrivateSub乡名_AfterUpdate()  '更新后事件

Me.村名.Requery  '刷新村组合框的列表数据

Me.村名=""    '清空村组合框,防止数据错乱

Me.屯名=""    '清空屯组合框,防止数据错乱

EndSub

9.以同样方法打开村组合框更新后事件过程,写入如下代码

PrivateSub村名_AfterUpdate()

Me.屯名.Requery  '刷新屯组合框的列表数据

Me.屯名=""    '清空屯组合框,防止数据错乱

EndSub

OK现在各组合框可以联动了,回到窗体视图就可以看到效果

以下再说一下组合框中常用的三个技巧

技巧一.单纯上面的设置,细心的坛友会发现,组合框展开的列表中为什么会有很多的重复数据?

如下图

可不可以显示唯一数据呢?

答案是:

可以的,方法如下:

打开行来源设置界面,如下图,在空白处右击,打开一个设置窗体

将唯一值的默认值否改为是,如下图,然后关闭

再回到窗体视图,看看是不是全部的数据变成唯一值了?

技巧二.可不可以当控件获得焦点时自动打开列表呢?

这样可以实现纯键盘操作,不用点击箭头,答案也是可以的

打开控件的属性,在"获得焦点"的事件过程中写入代码,代码如下:

PrivateSub乡名_GotFocus()  '获得焦点事件

Me.乡名.Dropdown  '展开列表数据

EndSub

OK再回到窗体视图,是不是获得焦点的控件会自动打开列表?

再按一下键盘的向下键,是否可以用键盘选择数据?

技巧三.  当组合框输入数据时,在打开的列表中可否高亮显示对应的数据?

答案同样可以

打开控件的属性,将"自动展开"设置为:

是,这样在组合框输入数据时,对应最接近的数据就会高亮显示,不信的话你自己试下就知了

这一节已讲完.

组合框使用教程(三)----组合框行来源模糊筛选上一节讲到,利用组合框与组合框之间进行数据筛选,当某一个组合框的行来源很多数据,而又不能分类再筛选时,能不能在组合框中自筛选呢?

如果可行的话相信在实际应用中有一定的用途,本节就这个问题进行探讨。

大家都知道,组合框的行来源可以写入条件的,也可以写入模糊查询条件,如下图

这个语句说明当组合框没有数据时,行来源全部列出数据,而当组合框有数据时,模糊显示相关数据

条件有了,当组合框输入字符时必须刷新行来源才能模糊显示相关数据,但单纯在组合框的“更改”事件中写入刷新语句,系统会弹出错误提示,原因是组合框还没有保存数据,这样是不能刷新的,能不能先保存数据,然后再刷新组合框的行来源呢?

本课程关键就是这一点。

一个窗体正常情况下是不会只有一个控件的,这样就给我们解决问题提供了便利,我们在组合框的“更改”事件中写入代码,先将焦点移到别的控件上,然后将组合框进行刷新,最后再将点返回到组合框上,这样就解决了先保存数据,然后再刷新组合框的行来源的问题了,代码如下:

PrivateSub生产单位_Change()  '组合框的更改后事件

Me.列表142.SetFocus    '先将焦点移到别的控件上

Me.生产单位.Requery    '更新组合框的源数据

Me.生产单位.SetFocus    '然后再将焦点返回到原组合框

IfNz(生产单位)<>""ThenMe.生产单位.SelStart=Len(Me.生产单位)'如果组合框有数据时将焦点移到字符的后面

Me.生产单位.Dropdown  '展开组合框的列表数据

EndSub

这里有一句代码

IfNz(生产单位)<>""ThenMe.生产单位.SelStart=Len(Me.生产单位)'如果组合框有数据时将焦点移到字符的后面

焦点返回到组合框后,将焦点移到字符的最后面,没有这句的话,以前输入的数据变成修改状态,这是我们不想看到的结果,从而使人感觉可以连续地输入数据

最后还要进行一个设置,将默认的限于列表"是"改为"否",不然当字段中的第一个字符相同时会直接显示第一行的数据

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1