薛玮翔
(广东省水利电力勘测设计研究院,广东广州510635)
一种以VBA与SQL语言开发的软件在水利电子档案检查录入中的应用
薛玮翔
(广东省水利电力勘测设计研究院,广东广州510635)
档案技术正处于由纸质管理转向电子管理的过渡时期,大量的现存纸质档案通过手动打录转化为电子档案无疑是一项繁琐、易错的工作量庞大的工作。而在检查核验与导入数据库这两个关键易错步骤更是变得尤为困难。利用VBA与SQL语言开发出的辅助软件,能很好地弥补相关辅助工具的缺失,提供自动生成档号等信息,检查核错与批量导入数据库等功能,使导入工作变得正确、简洁且高效,可以大大提高电子档案录入的效率。
电子档案;VBA;SQL;检查核验;批量录入;正确高效
随着数字档案技术的日益发展与进步,水利系统档案管理逐步由纯纸质档案向“双轨制”转化,即由电子科技档案与纸质档案并存管理。目前的电子科技档案有两种管理形式,即物理保存的文件载体和数字档案管理系统存储的网络载体。
物理存储的档案文件条目多由表格制作,分行列举档案信息条目,并配以索引查询相关资料文件。条目多由手工录入。水利项目纸质档案由来已久,将纸质档案录入是一个庞大而繁琐的过程,且很难逐条检查,所以检查录入信息的正确是一项困难的工作。数字档案系统是由数据库与前端组成的网络载体。目前市场上所有的档案管理软件,都是采用Web技术开发的,通过前端页面固定以单条录入的方式导入档案信息数据进入数据库,并未提供检查核验、批量上传的方式。因此,很多档案管理部门只使用数字档案存储新增档案信息,而大量的老旧档案仍只通过纸质档案的方式登记保存。
通过手打电子化陈年累计的庞大的纸质文档,本身就难以避免错打、漏打的情况。单纯利用Excel导入数据库,更面临字段不匹配或某条目错误而失败而中断,且不会提示已录入与未录入的部分,极易造成数据库混乱。所以,将大批量的现存档案录入的难度与所需时间更是高于前者。
1.1 电子档案录入工作现状
目前,电子档案的录入工作大部分处于新工程直接电子化、老工程慢慢录的模式,由于上述原因,陈年积累的纸质档案电子化的进度进展缓慢。广东省水利电力勘测设计研究院(以下简称省院)正实施数字化档案,将现存所有档案全部录入成电子科技档案。
在电子档案录入的过程中,最容易造成错误、引发数据混乱的原因主要有两个:一是由于工作量过于庞大,漏、错输的问题难以避免,尤其像档号、工程类别、工程编号等,如果输出错误,电子档案系统就很难以此进行分类晒别,查询也变得困难;二是录入字段的格式与数据库字段设置不符。如果没有相关软件进行衔接,直接录入,容易造成录入失败,甚至造成数据库混乱。
面对上述问题,一种基于Excel、VBA、SQLServer开发的档案检查录入系统应运而生,可极大地解决信息检查问题,快速查出错、漏内容,检查各字段格式,并且实现档案批量上传。
1.2 相关技术背景
VBA(Visual Basic for Applications)是VB的一门宏语言,应用于Office工具中,可在表格间实行VB编程的功能。
结构化查询语言(Structured Query Language,以下简称SQL),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统,允许用户在高层数据结构上工作。实际中,可以使用相同的SQL作为数据输入与管理的接口。同时,SQL语句可以嵌套,这使它具有极大的灵活性和强大的功能。
结合VBA、SQL,可以开发接口软件,实现检查录入与批量导入数据库的功能。
2.1 软件主要特点
数据库是以字段为单元的一种表式结构,目前所有电子档案系统都是以数据库作为载体进行数据的存储。但是数据库难以直接写入字段,而目前所有档案管理系统无法实现批量录入上传功能,其提供的都是单条录入的接口。Excel拥有批量记录条目的功能,虽然SQL有上传Excel入数据库的简易接口,但是条件非常苛刻,无法提供检查,一旦出错会半途中断且无法提供已录入的进度,极易造成数据库混乱。根据省院原有工作经验,通过此方法上传是费时费力且易错的。
基于此种现状,开发了一种衔接数据库与Excel的生成检查导入软件。该软件的主要特点有:衔接Excel与SQLServer,比对字段格式,确保字段匹配;按照档案管理规范标准,自动检查字段内容、格式,检查错、漏和未按标准录入的内容;自动生成主键和档号等由其余字段内容确认的主要关键字段,确保主要字段正确性;摒弃原有的简易接口,通过VBA与SQL重写完整的端口,逐行上传跟踪,记录已上传行数,确保上传正确完成,并提供数据库检索和删除等新功能。档案数据检查导入系统流程,如图1所示。
图1 档案数据检查导入系统流程
2.2 软件自动生成、检查与导入功能
(1)自动生成、检查功能。档案录入人员通过软件的读取接口,将批量存放于Excel内的档案信息条目读取到导入系统中。读取操作界面,如图2所示。
图2 读取操作界面
此时,系统会自动读取该表格的数据。通过VBA代码控制,系统进行的工作主要有:获取当前日期时间每条数据自动生成的一个与日期时间相关的记录码,用作数据库表主键且便于以后查找;自动生成由其余字段内容确认的主要关键字段;根据相关标准规范、数据库字段设计等要求,逐条逐字段检查;显示当前处理进度信息。显示读取进度界面,如图3所示。
图3 显示读取进度界面
当读取结束时,会提示第一个检查到的错误字段位置,并进入表格,如图4所示。
图4 显示错误位置
此时,档号已经通过相应字段由VBA代码自动生成,且未按标准、缺漏字的格子会自动变为红色。每个字段均有按标准编制的字典数据,与输入数据进行比对检查,确保字段内容正确无误。
之后,可对错误的格子进行修改,且会自动提示错误信息。通过操作面板的检查按钮,可自动跳转到有错误的格子进行修改。修改时,亦会根据各字段规范进行检查。当格子内数据无错误时,该格底色会变回为白色。当全部错误都已被修正、无错误时点击检查按钮会提示无错信息。此外,在点击数据库操作界面前,也会进行一次错误检查,无错后方可打开数据库操作界面。
(2)导入功能。打开数据库操作界面,进入数据库操作面板。数据库录入界面提供连接指定电子档案数据库功能,并且提供删除和导入功能。档案管理人员可选择指定库,根据已完成检查的程序内的数据进行导入或者删除。导入与删除或于某行失败的结果会以提示信息的方式给出,如图5—6所示。
图5 数据库操作界面查询与汇总
软件基于VBA与SQL开发,主要分为导入检查与数据库操作两大基本模块。导入检查模块主要使用VBA实现。通过VB面向对象的特点,把所需操作划分为逐个对象。VBA继承所有VB语言的功能,并提供对Excel格子数据作为对象的操作,使编辑窗体、通过代码检查操作格子内容成为可能。由于VBA对于单元格操作机制优化不足,对大数据处理需优化算法,否则易造成时间与空间开销溢出。在本系统中,检查代码也进行了多次算法优化,最终得以实现。数据库操作模块主要使用VB与SQL实现,通过编写数据接口,完成Excel与电子档案库数据库的对接。与SQL自带的简易接口相比,原接口过于简易,使用条件苛刻,无异常处理能力,极易破坏数据。本软件实现的接口更加安全、稳定,定位性更强,可实际应用于上传操作。
水利档案电子化是一个繁琐且庞大的工作,VBA是门功能强大的拓展语言,充分利用好VBA在Office软件中的功能,可以开发拓展出更多适用于批量数据处理的辅助工作软件。
TV:G270.73
:B
:1004-7328(2017)01-0061-03
10.3969/j.issn.1004-7328.2017.01.019
2016—11—13
薛玮翔(1991—),男,助理工程师,主要从事水利电力信息自动化工作。