前段时间,公司需要急需找出一份合同的扫描件,但翻遍整个财务室的档案柜仍然没有找到;还有,公司的证件、文件零乱的分散在各部门,有时候需要对外提交材料的时候,经常要去各个部门搜刮回来然后复印,这是一个很烦锁且很耗时的工作。于是,我就萌生出写这么个小工具,把公司的合同、证照扫描后上传到服务器的数据库中保存起来,然后开放权限给相关使用人员,方便大家查找文档,并且可以相互协同处理,随时用随时下载,用完后就删除,原文件仍然完好的保存在数据中,也提高了合同、证照的安全性。
详细处理如下:
第一步: 在服务器端创建一张数据表,用于存放文件信息;【注意,文件本身是二进制流存储的,所以字段要选择image类型】
第二步:在服务器上编写如下存储过程,用于向数据库存储文件信息,【如果数据表中存有同名文件,则会用现在上传的文件替换,如果没有同名文件就新增】
服务器端的工作已处理完成!
接下来,我们就要在Excel VBE代码窗口进行前端的处理了:
制作两个窗体,一个窗体用于上传文件,另一个窗体用于下载文件,如下图:
上传文件示例:
上述文件列表中,如果不想上传某个文件,则双击该条目,就会删除
至此,上述文件列表就已经保存到后台数据库中了,我们去数据库中验证一下:
OK,至此,文件已成功保存到数据库里了,保存在磁盘上的源文件可以删除了,绝不影响后面的下载使用!!
下载窗体示例:
上述列表中的文件,如果某一文件不想下载,可以双击该条目进行删除。
VBA代码如下:
上传文件的VBA代码:
模糊查找文件的VBA代码
下载文件的VBA代码
此工具支持多用户多线程同时下载,因此更好的满足各相关使用人员之间的协同,
由于文件都是以二进制流的形式保存在数据库里,虽然稳定性和安全性得到了保障,但对数据库的消耗也是巨大的,所以也可以采取另一种思路来处理,数据库中只保留文件的路径信息,而把源文件保留在服务器的磁盘中。这种操作比较简单,留给大家练手用。
好了,今天就写到这儿了。请支持原创!
Excel老坛与你共勉!
领取 专属20元代金券
Get大咖技术交流圈