基于Sql数据库和VBA的Excel文档控制与管理研究
——以中国成达设备室大型设备计算书管理为例
2018-09-03王虓,蒲弦,王彬
王 虓,蒲 弦,王 彬
(中国成达工程有限公司,成都 610041)
1 设备计算书(Excel文档)的控制与管理
1.1 设备计算书(Excel文档)的概念
设备计算书(Excel文档)与一般科技文档不同,它包含设备设计的重要信息和设备设计过程中重要计算过程,与设计标准(国标,行业标准)等密不可分。造成文档变更的原因也十分复杂,从创建开始就需要不断测试使用,发现问题,遇到设计标准变化,都需要对文档进行小幅更新或整体更新。
1.2 设备计算书(Excel文档)的控制与管理中遇到的问题
1.2.1 从文档使用过程来看,不利于设计使用和保密
传统使用过程通过作者(专业负责人等)、用户(设计人员)分散化自由传递,容易导致用户使用的文档版本不一致或不是最新带来设计偏差。同时自由传递可能被随意传递外部人员造成泄密或知识产权流失。
1.2.2 从文档更新(升版)过程来看,不利于技术探索和升级
使用人员在发现问题或技术升级时就直接升版、分发了文档并开始使用和自由传递给相关人员,没有统一管理,更新(升版)过程产生多个分支,丢失版本主线,同时也无法得知变更的具体细节和各个版次间对各个版本进行比较,进而也无法探寻其中存在的问题和技术/标准变更点,摸索问题解决的线索,验证改动,提高后续类似问题的改进效率。
1.2.3 其他问题[1]
(1)从档案管理角度来看,不利于有效反应文档管理的全程性和完整性。
(2)从质量管理角度看,不利于文件质量管理全程控制。
2 解决方案
2.1 整体架构
在企业内网中建立文件服务器,数据库服务器,web服务器,用文件服务器统一存放并加密管理相关文件,数据库服务器记录文件的版次、使用权限等相关管理信息,web服务上建立统一的文档门户作为用户获取、更新(升版)文档的唯一入口。计算书文档从审批、发行、升版/更新、执行使用、废止等都将在企业内网中的这个体系下受控运行。
2.2 技术细节[2][3]
2.2.1 Excel的内部控制流程
在Excel文件内部使用VBA技术、ADO技术等与数据库服务器和文件服务进行交互严重,确保Excel文件的版次的统一性,唯一性和最新使用性。通知使用了VBA加密Excel对文档进行保护,防止未授权的使用。
2.2.2 核心实现代码
Sub VersionControl()
MsgBox “开始检查版本”
DimiAs Integer,j As Integer,sht As Worksheet
Dim myVersion As String
Dim myId As String
myVersion=”Rev8.3(20170504)”
myId=”eb762898-20e3-456d-a24b-049f4e4fd82e”
Dim cn As Object ‘定义数据链接对象,保存连接数据库信息
Dim rs As Object ‘定义记录集对象,保存数据表
Set cn=CreateObject(“ADODB.Connection”)’ 创建数据链接对象
Set rs=CreateObject(“ADODB.RecordSet”)’创建记录集对象
Dim strCn As String,strSQL As String ‘字符串变量
strCn=”Provider=sqloledb;Server=数据库服务器地址;Database=数据库名;Uid=数据库用户名;Pwd=数据库密码;”
strSQL=”SELECT[VersionCode]FROM[tb_Document]Where[DocumnetGuid]=’” & myId & “’”
cn.Open strCn ‘与数据库建立连接,如果成功,返回连接对象cn
rs.Open strSQL,cn ‘执行strSQL所含的SQL命令,结果保存在rs记录集对象中
If myVersion=rs(“VersionCode”)Then
MsgBox “您使用的是最新版本,可以正常使用!”
Else
For Each sht In ActiveWorkbook.Sheets
sht.Protect Password:=”设置锁定Excel的密码”
Next sht
MsgBox “该版本已经过期,请下载使用新版本!”
‘调用IE下载
Dim IE As Object
Set IE=CreateObject(“InternetExplorer.Application”)
IE.Visible=True
IE.Navigate(“http://文件服务器地址 /FileDownload.aspx?DocumnetGuid=” & myId)
End If
rs.Close ‘关闭记录集,
End Sub
3 结论
本套解决方案在中国成达工程有限公司设备室的大型设备计算书管理中得到应用。解决了文件版本更换带来的诸多问题,提高了计算书文档的管理水平,促进了计算书文档的利用效率,进行了版本控制方法和流程的持续改进,获得相关干系人一致好评。
4 展望
在此基础上可以扩展建设处以文档全生命周期为基础的分类管理和控制为基础,基于WEB,SQL,VBA技术的大型Excel、word文档等支持内建ADO访问数据库的文档载体大型电子文档管理控制系统。