小编今天要跟大家分享的是一个基于Access的复杂检索系统的功能实现图解教程,下面以小编最近做的一个基于ACCESS的检索系统为例,这个检索系统的数据量不是很大,但数据检索窗体比较复杂,如下图所示,对于软件界面的文字部分小编做了隐藏处理,图中的左侧是一个控件树,而上方为检索的条件设置,第一个字段为检索值,第二个字段为是用户输入的检索值,第三个为检索逻辑,学习的小伙伴需要将重要的难点先记下来:
下面我们对于学科树和检索条件进行结合查询
在ACCESS系统中有提供一个叫“Treeview”的控件,利用这个软件我们可以制作学科树,同时当我们单击学科树的某个叶子节点就可以访问相应的学科数据。但是这时候用户改了要求,希望在检索后在不同学科下浏览检索结果,也就是说,当我们在单击学科树时,也要同时触发检索。
针对以上的新要求,具体的实现方法为:
首先我们在Treeview的NodeClick事件,定义一个SQL变量,让用户获取子节点的信息;同时,我们对进行条件判断,这时判断用户是否输入检索条件,如用户未输入检索条件,则直接把这个SQL变量赋给查询结果窗体;如用户输入了检索条件,则把用户的输入转化为SQL语句,并用and条件和这个SQL连接,这样就轻易实现了学科树检索和用户条件检索的结合。下面我们一下来看一下详细的图解吧!
一个基于ACCESS的复杂检索系统的功能实现图解教程及关键代码1
一个基于ACCESS的复杂检索系统的功能实现图解教程及关键代码2
下一个内容:如何进行多字段检索和全文检索
新的挑战来了,我们的用户要求能进行全文检索,那我们该怎么办呢?这时候我们可以新建一个查询,把要检索的多个字段进行连接,连接成一个长字段,用户进行全文检索时就在这个字段内检索就可以了。虽然这并不是一个十全十美的方法,但在目前的数据量下不会有问题,除此之外,ACCESS的查询保存的是SQL语句,因此是不会增加数据库表的体积,与此同时数据库体积不会增大,测试速度也没有问题。所以大家还是可以放心使用的.
怎么在查询结果中记录的导出
当我们遇到查询结果存储在一个子窗体内的情况,这时用户要求把查询结果导出为Excel格式。我们该怎么做呢?
虽然说把窗体导出的数据导出方法很多,在其他开发工具里很容易就实现,但在ACCESS里确有些费周折.经过小编总结,主要的方法有复制的方法,用VBA代码把子窗体的光标移动到第一条记录,然后写个循环,依次选中所有的行,然后,调用excel把选中的行复制到excel里去。这种方法在一般数量不多的情况下运行是没有问题的,但是在数量大的情况下就会运行速度很慢.
所以小编在这里为大家推荐一种新方法:使用vb里的Excel.application,这个对象可以直接把窗体里的内容复制到一个excel里,
具体步骤如下:
exlpath=getFilepath(,"excel(*.xls)","保存文件为xls",,False)
Ifexlpath=""ThenExitSub
(这一段是调用一个函数,给用选择一个保存路径的选择,用户选择的路径保存在exlpath里)
(下面的代码网上有,大意是创建一个excel对象,读取表结构,把表结构拷贝至第一行,从A2单元格开始拷贝数据)
大家在这里可以仔细观察到Excel.Application这个对象,好像和dde有点像,这时我们就可以对导出的excel格式进行一些更为精确的调整和改变,但是实行起来并不容易.
最后我们会讲如何通过调用帮助文件:
我们都知道做好的帮助文件为chm格式,但是假如我们要在菜单或其他地方调用这个帮助文件,需要先在模块里做一个函数:
PublicFunctionhelp()
ShellExecute0,"Open","&Application.CurrentProject.Path&"\help\help.chm",",",SW_SHOW
EndFunction
函数做完后,我们在菜单或按钮上调用就可以啦!
对于一个基于ACCESS的复杂检索系统的功能实现小编就为大家分享到这里,不知道大家掌握得怎么样呢?掌握ACCESS的复杂检索系统的功能能够帮助我们轻松应对用户的各种高难度要求,对于我们的工作也是非常有帮助的,希望本文对大家有帮助!
¥48.00¥180.00
¥48.00¥180.00
¥599.00
¥60.00¥120.00