谜爱阁生活网

一个基于ACCESS的复杂检索系统的功能实现图解教程及关键代码

软件教程  2024-06-22 11:46:32  热度:34℃

最近在做一个基于ACCESS的检索系统,数据量不是很大,但数据检索窗体比较复杂,如下图(软件界面的文字部分做了隐藏处理),左侧是一个控件树,上方为检索的条件设置,第一个字段为检索值,第二个字段为是用户输入的检索值,第三个为检索逻辑,现把主要的技术难点记录一下:

 


(一)、学科树和检索条件的结合查询

ACCESS提供一个叫“Treeview”的控件,可以制作学科树,单击学科树的某个叶子节点,可以访问相应的学科数据。但用户又要求,检索后,要在不同学科下浏览检索结果,这就要求,单击学科树时,也要同时触发检索。

具体的实现方法为:

Treeview的NodeClick事件,定义一个SQL变量,用户获取子节点的信息;同时,对进行条件判断,判断用户是否输入检索条件,如用户未输入检索条件,则直接把这个SQL变量赋给查询结果窗体;如用户输入了检索条件,则把用户的输入转化为SQL语句,并用and条件和这个SQL连接,这样就实现了学科树检索和用户条件检索的结合。

一个基于ACCESS的复杂检索系统的功能实现图解教程及关键代码
一个基于ACCESS的复杂检索系统的功能实现图解教程及关键代码1

一个基于ACCESS的复杂检索系统的功能实现图解教程及关键代码2
 

(二)、多字段检索和全文检索

用户要求能进行全文检索,怎么做呢?可以新建一个查询,把要检索的多个字段进行连接,连接成一个长字段,用户进行全文检索时就在这个字段内检索就可以了。这种实现方法不是特别好,但我测试,在目前的数据量下不会有问题,另外,ACCESS的查询保存的是SQL语句,并不会增加数据库表的体积,数据库体积不会增大,目前测试速度没有问题。

(三)、查询结果中记录的导出

查询结果存储在一个子窗体内,用户要求把查询结果导出为EXCEL格式。把窗体导出的数据导出方法很多,在其他开发工具里很容易就实现,但在ACCESS里确有些费周折。网上查了下,主要的方法有复制的方法,用VBA代码把子窗体的光标移动到第一条记录,然后写个循环,依次选中所有的行,然后,调用excel把选中的行复制到excel里去。这种方法在数据量小的时候,一点问题没有,但超过1万条是就很慢了。

我使用的是另一种方法,使用vb里的Excel.Application,这个对象可以直接把窗体里的内容复制到一个excel里,

具体如下:

 

exlpath = getFilepath(, "excel(*.xls)", "保存文件为xls", , False)

If exlpath = "" Then Exit Sub

(这一段是调用一个函数,给用选择一个保存路径的选择,用户选择的路径保存在exlpath里)

 

(下面的代码网上有,大意是创建一个excel对象,读取表结构,把表结构拷贝至第一行,从A2单元格开始拷贝数据)

Set oExcel = CreateObject("Excel.Application")

Set oBook = oExcel.Workbooks.Add()

 

Me.xiform.Form.Recordset.MoveFirst

 

For i = 0 To Me.xiform.Form.Recordset.Fields.Count - 1

oBook.Worksheets(1).Cells(1, i + 1).Value = Me.xiform.Form.Recordset.Fields(i).Name

Next

 

oBook.Worksheets(1).Range("A2").CopyFromRecordset Me.xiform.Form.Recordset

oBook.SaveAs ("" & exlpath & "")

MsgBox "导出成功"

 

errexit:

oBook.Close False

oExcel.Quit

Set oBook = Nothing

Set oExcel = Nothing

Exit Sub

 

errit:

MsgBox "错误号为" & Err.Number & " 错误说明:" & Err.Description

 

End If

Resume errexit

 

仔细看了Excel.Application这个对象,好像和dde有点像,可以对导出的excel格式进行一些更为精确的实质。但实现起来真的有点麻烦。

(四)调用帮助文件:

做好的帮助文件为chm格式,要在菜单或其他地方调用这个帮助文件。首先在模块里做一个函数:

 

Public Function help()

ShellExecute 0, "Open", "" & Application.CurrentProject.Path & "helphelp.chm", "", "", SW_SHOW

End Function

在菜单或按钮上调用就可以。

以上就是一个基于ACCESS的复杂检索系统的功能实现图解教程及关键代码的全部内容,望能这篇一个基于ACCESS的复杂检索系统的功能实现图解教程及关键代码可以帮助您解决问题,能够解决大家的实际问题是谜爱阁生活网一直努力的方向和目标。

最近更新

  • 酷狗音乐中使用蝰蛇音效制作工具的具体操作方法

    酷狗音乐中使用蝰蛇音效制作工具的具体操作方法

    2024-11-111193阅读

  • win7电脑中出现声音图标不见了的具体解决方法

    win7电脑中出现声音图标不见了的具体解决方法

    2024-11-11833阅读

  • 车到哪app的详细软件介绍

    车到哪app的详细软件介绍

    2024-11-11930阅读

  • 小米9se中查看序列号的具体操作方法

    小米9se中查看序列号的具体操作方法

    2024-11-11907阅读

  • 迅雷中使用FTP探测器的详细操作方法

    迅雷中使用FTP探测器的详细操作方法

    2024-11-11919阅读

  • ppt制作出小荷才露尖尖角动画场景的具体操作步骤

    ppt制作出小荷才露尖尖角动画场景的具体操作步骤

    2024-11-11765阅读

  • 小米9se中清除内存的具体操作步骤

    小米9se中清除内存的具体操作步骤

    2024-11-11721阅读

  • 千牛中取消消息提醒的具体操作流程

    千牛中取消消息提醒的具体操作流程

    2024-11-11741阅读

  • 抖音app中两个人使用特效具体步骤介绍

    抖音app中两个人使用特效具体步骤介绍

    2024-11-11732阅读

  • 2018Mac mini值得购买吗?Mac mini配置参数及售价详解

    2018Mac mini值得购买吗?Mac mini配置参数及售价详解

    2024-11-11755阅读