【VBA研究】Excel连接Oracle的一些说明

谁说胖子不能爱 提交于 2021-01-08 10:47:27

作者:iamlaosong

通过VBA连接Oracle数据库查询数据,一般有两种OleDB连接驱动方法,一种是用微软的驱动,另一种用Oracle驱动,Provider需要根据实际情况修改。这儿对我使用的环境做个记录。

1、Microsoft公司提供的OleDB驱动MSDAORA,据说只支持32位系统,我在32位系统下使用没有问题,其连接字符串如下:
    connectionString="Provider=MSDAORA;Data Source=dataSource;User Id=userid;Password=password;"
    或
    connectionString="Provider=MSDAORA.1;Data Source=dataSource;User Id=userid;Password=password;"


其中MSDAORA.1是驱动的名称,“.1”据说是版本号,是COM的命名规则的一个约定格式,可以不写;dataSource是Oracle客户端配置的服务名,就是tnsnames.ora中配置的名称。

驱动程序msdaora.dll放在C:\Program Files\Common Files\System\Ole DB文件夹下面。

实际例子:

    Set cnn = CreateObject("ADODB.Connection")
    Set rst = CreateObject("ADODB.Recordset")
    sqls = "connect database"
    cnn.Open "Provider=msdaora;Data Source=dl580g9;User Id=emssxjk;Password=emssxjk;"
 



2、Oracle公司提供的OleDB驱动,支持32bit与64bit,需要安装Oracle Data Provider for OLE DB,Oracle客户端应该带了。我的电脑安装的简易客户端也有这个驱动,驱动程序路径是C:\Oracle\ora90\BIN\OraOLEDB.dll,其连接字符串如下:
    connectionString="provider=OraOLEDB.Oracle;Persist Security Info=False;User ID=UserName;Data Source=DataBase;Extended Properties='';Password=Password"
    或
    connectionString="provider=OraOLEDB.Oracle.1;Persist Security Info=False;User ID=UserName;Data Source=DataBase;Extended Properties='';Password=Password"


形式和内容都和上面差不多,只要把MSDAORA.1换成OraOLEDB.Oracle.1就行了。

如果使用中发现无法连接,报实时错误3706:未找到提供程序,可以检查一下驱动个文件是否存在。

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!