access 如何解决组合框无法满足大量数据的选择问题?

php中文网
发布: 2016-06-07 15:17:22
原创
1607人浏览过

问题 : Access里面有 组合 框,可以很快地从多行记录中 选择 所需要的 数据 。但是如果记录超过1000-2000呢? 选择 就非常不方便了。我该怎么办? 回答: 其实很多 数据 都可以分类(分层)来 选择 ,而且我们可以预先筛选 数据 。 以下这个示例就是用重复

问题

Access里面有组合框,可以很快地从多行记录中选择所需要的数据。但是如果记录超过1000-2000呢?选择就非常不方便了。我该怎么办?

回答:

其实很多数据都可以分类(分层)来选择,而且我们可以预先筛选数据

以下这个示例就是用重复打开同一个窗体类来完成多层次数据选择

当然,还包括预先筛选数据功能。

在阅读本文前请先参考:

《新手来看:如何设计表结构便于treeview显示?》

http://access911.net/index.asp?board=4&recordid=75FABE1E12DC

一文,以了解如何定义数据表结构可以方便的分类并显示。

并阅读:

如何将一个窗体重复打开2遍,并且每一遍打开的窗体显示不同的数据?》

DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

DeepSeek 10435
查看详情 DeepSeek

http://access911.net/index.asp?board=4&recordid=72FAB11E15DC

一文,以了解ACCESS中一个FORM其实就是一个类

好了,现在开始:

1、建立一个窗体(testForm),里面有一个文本框(text0),一个按钮(Command2)。

2、建立一个窗体(selectForm),里面有一个列表框(list0)。

3、在testForm中的文本框的“更新后”事件中写入以下代码以打开品名选择窗体(selectForm),并对其中的列表框(list0)的行来源(RowSource)进行赋值。

PrivateSubText0_AfterUpdate()<br>  DoCmd.OpenForm"selectform"<br>  '这行代码就实现了BTYPE表的模糊检索,使用的是WHERE子句中的LIKE关键字进行通配<br>  Forms("selectform").List0.RowSource="SELECTbtype.soncount,btype.UserCode,btype.FullName,btype.typeIdFROMbtypeWHEREbtype.fullnamelike'*"&Text0.Value&"*'"<br>EndSub<br>

4、在testForm中的命令按钮的“单击”事件中写入以下代码以打开品名选择窗体,按分类检索

5、然后再在testForm中输入以下代码以完成多次打开窗体本身并显示子类中数据的功能。

为了能够使代码重复利用,写了两个通用过程

OptionCompareDatabase<br>Dimf<br>PrivateSubForm_KeyDown(KeyCodeAsInteger,ShiftAsInteger)<br>  '先设定窗体的“键预览”属性为“是”<br>  '本过程将加快你的输入速度<br>  '如果按ESCAPE键,就关闭窗体<br>  IfKeyCode=vbKeyEscapeThen<br>    closeAllSelectForm"SelectForm"<br>  EndIf<br>EndSub<br>PrivateSubList0_DblClick(CancelAsInteger)<br>  checkYouSelect<br>EndSub<br>PrivateSubList0_KeyPress(KeyAsciiAsInteger)<br>  '本过程实现全键盘操作<br>  IfKeyAscii=13Then<br>    checkYouSelect<br>  EndIf<br>EndSub<br>SubcloseAllSelectForm(strFormNameAsString)<br>  '通用过程1<br>  '本过程用来关闭所有的指定名称的窗体<br>  ForEachobjFormInForms<br>    IfobjForm.Name=strFormNameThen<br>      DoCmd.CloseacForm,objForm.Name<br>    EndIf<br>  NextobjForm<br>EndSub<br>SubcheckYouSelect()<br>  '通用过程2<br>  '检测你的<strong>选择</strong><br>  '如果发现suncount列为0(表示没有下一层了)<br>  '就可以把你选定的产品名称放到文本框中了<br>  OnErrorResumeNext<br>  Setf=NewForm_SelectForm<br>  DimobjFormAsForm<br>  IfList0.Column(0)=0Then<br>    Forms("testform").Text0.Value=List0.Column(2)<br>    closeAllSelectForm"SelectForm"<br>  Else<br>    f.Visible=True<br>    f.List0.RowSource="SELECTbtype.soncount,btype.UserCode,btype.FullName,btype.typeIdFROMbtypeWHEREparid='"&List0.Value&"'"<br>  EndIf<br>EndSub

相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号