WPS连接Access数据库,原来要这样做才行!

你的位置:门徒注册 > 最新动态 > WPS连接Access数据库,原来要这样做才行!
WPS连接Access数据库,原来要这样做才行!
发布日期:2024-09-02 08:18    点击次数:108

内容提要

WPS连接Access数据库

Access数据库引擎:Access Database Engine 2010大家好,我是冷水泡茶。前段时间,我们分享过一个案例【采购明细汇总:WPS数据库连接字符串】,那是在给客户优化一个进销存应用中碰到的问题。客户需要使用WPS,而我当时没有考虑到这么档子事,直接在Excel中采用ADO数据库连接来操作数据,哪知道在WPS下无法运行!于是在网上搜索解决方案,结果说WPS只支持低版本(2003及以前)的数据库连接:

strCnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbs & ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1';"但问题是我们没有办法根据Office的版本号来判断,因为目前WPS的版本号是12,也就是Office 2007版,连接字符串是这样的:

strCnn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & dbs & ";Extended Properties='Excel 12.0;HDR=Yes;IMEX=2';"所以,后来采用了一个容错语句,在WPS中勉强运行。前两天, 客户有意向要把这个进销存重新设计一下。他原来的应用就是一个Excel文件,所有数据都存在这一个文件里面,在录入数据的过程中,还时不时地报错,数据安全性存在很大的隐患。基本方案很简单,把操作端与数据端分开,我们分享过很多Access的案例都是这种模式。但是,我没敢贸然接活,主要原因是他们要使用WPS,而对于WPS能否连接Access数据库,我还没有确切的把握,还是先试一下再说吧。今天,我试着用WPS VBA连接Access数据库,不出意外地没有成功:

图片

搞了半天,也不知啥原因。抱着试试看的心情,到网上搜“WPS VBA连接Access数据库”,在ExcelHome论坛上找到一个帖子:

https://club.excelhome.net/thread-1572190-2-1.html有人说要下载一个32位的Access数据库引擎:accessdatabaseengine,于是赶紧又搜了一下,看到一个官网下载链接,但是没下成功,它给我来一个:

We're sorry, this download is no longer available.于是,在“系统之家”下载站找到一个:

https://www.xitongzhijia.net/soft/243207.html下载,安装32位版本的,再测试,成功了,连接Excel、Access都没有问题!我写了一个设置连接字符串的自定义函数,区别Excel文件与Access文件设置不同的连接字符串:

Function GetStrCnn(ByVal DbFile As String, Optional ByVal Psw As String = "")'获取数据库连接字符串Dim fileType As StringfileType = GetExtn(DbFile)If InStr(fileType, "accdb") ThenGetStrCnn = "Provider=Microsoft.ACE.OLEDB.12.0;Jet OLEDB:Database Password=" & Psw & ";Data Source=" & DbFileElseIf InStr(fileType, "xl") ThenGetStrCnn = "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Excel 12.0;Data Source=" & DbFileEnd IfEnd Function

Function GetExtn(fileName)'获取文件后缀名GetExtn = Right(fileName, Len(fileName) - InStrRev(fileName, ".") + 1)End Function本来我是很少考虑与WPS的兼容性问题的,因为我自己一直在用Office,但是,有些付费设计的客户在用WPS,这也没有办法,只好尽量满足。

总结:在WPS下使用数据库连接处理数据,可以参考以下方式:

1、如果是连接当前工作簿中的工作表,如果没有安装Access Database Engine,可以试试Microsoft.Jet.OLEDB.4.0数据库引擎,如果需要与Excel同时使用,可以参考【采购明细汇总:WPS数据库连接字符串】中的方法,使用容错语句来解决;如果安装了Access Database Engine,那么应该可以跟Excel兼容,直接使用Microsoft.ACE.OLEDB.12.0数据库引擎(这点没有测试)。2、如果要连接Access数据库或者其他Excel文件,我们就需要安装Access Database Engine,然后就可以使用Microsoft.ACE.OLEDB.12.0数据库引擎来连接数据库了。

好,今天就到这,我们下期再会。~~~~~~End~~~~~~

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报。