前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VBA与数据库——Provider字符串编写

VBA与数据库——Provider字符串编写

作者头像
xyj
发布2021-04-26 11:32:38
9780
发布2021-04-26 11:32:38
举报
文章被收录于专栏:VBA 学习VBA 学习

在前面的把Excel当作数据库处理的介绍中,使用ADO连接数据库是调用Open方法:

代码语言:javascript
复制
AdoConn.Open "Provider =Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties=""Excel 12.0;HDR=YES"";"

这个连接字符串是以分号来进行分割的key value,就像使用外部对象字典中用到的它的key和item一样。

里面比较特殊的是Provider,这个东西是数据库驱动程序的名称,真正去操作数据库的那个程序。

作为初学者,怎么知道什么数据库对应使用什么样的Provider呢?我以前基本都是网上搜索,然后记录在某个地方,这当然也是一个不错的办法,这里再介绍2个其他的方法:

Excel菜单

使用图中Excel菜单[数据]下的[获取和转换数据]功能,就能够得到Provider字符串,但是这种得到的字符串一般很长,有许多默认的属性是可以忽略不写的。

使用uld文件

新建1个txt文件,然后把后缀修改为uld,右键点击属性查看:

就算没有连接成功也能得到需要的Provider字符串,上面演示的是SQL Serve的连接字符串,其他的可以自己去试试。

细心的可能会发现,图中并没有Microsoft.ACE.OLEDB,那是因为我的电脑是64位的,而电脑里Microsoft.ACE.OLEDB是32位的,uld文件默认关联的是和电脑同样版本的驱动。

想要调出32位驱动,可以使用1个cmd命令:

代码语言:javascript
复制
REM 使用udl文件获取连接数据库的字符串

cd . > getProvider.udl

rundll32 "C:\Program Files (x86)\Common Files\System\Ole DB\oledb32.dll", OpenDSLFile getProvider.udl

新建1个txt文件,后缀修改为.cmd,然后复制上面的内容,双击打开:

里面就有了32位的驱动程序了(Microsoft.ACE.OLEDB就是Access Database Enhine)。

(注意oledb32.dll的路径。)

这个方法比较方便,任何一台电脑都可以随时找出所安装的驱动程序,并很方便的写出Provider字符串。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-04-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 VBA 学习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用uld文件
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档