【VBA研究】Excel连接Oracle的几点说明
作者:iamlaosong
通过VBA连接Oracle数据库查询数据,最常用的是OleDB方法。这个方法一般有两种OleDB连接驱动方法,一种是用微软的驱动,另一种用Oracle驱动,Provider需要根据实际情况修改。最近常有人问我如何进了连接,这儿对我使用的方法做个记录。
1、Microsoft公司提供的OleDB驱动MSDAORA,据说只支持32位系统,我在32位系统下使用没有问题,其连接字符串如下:
cnnStr="Provider=MSDAORA;Data Source=dataSource;User Id=userid;Password=password;"
或
cnnStr="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")
cnnStr = "Provider=msdaora;Data Source=dl580g9;User Id=emssxjk;Password=emssxjk;"
cnn.Open cnnStr
或者直接写连接串:
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,其连接字符串如下:
cnnStr="provider=OraOLEDB.Oracle;Persist Security Info=False;User ID=UserName;Data Source=DataBase;Extended Properties='';Password=Password"
或
cnnStr="provider=OraOLEDB.Oracle.1;Persist Security Info=False;User ID=UserName;Data Source=DataBase;Extended Properties='';Password=Password"
形式和内容都和上面差不多,其中的默认项可以不写(),各个参数的顺序也不重要,只要把MSDAORA.1换成OraOLEDB.Oracle.1就行了。
如果使用中发现无法连接,报实时错误3706:未找到提供程序,可以检查一下驱动个文件是否存在。
实际例子:
Set cnn = CreateObject("ADODB.Connection")
Set rst = CreateObject("ADODB.Recordset")
cnnStr = "Provider=OraOLEDB.Oracle;Data Source=dl580g9;User Id=emssxjk;Password=emssxjk;"
cnn.Open cnnStr
3、最后说一下通过ODBC连接。其实和前面的OleDB连接差别不大。先去ODBC数据源管理器中看下驱动程序的名称,然后写好连接串就行了。连接串如下:
cnnStr = "Driver={Microsoft ODBC for Oracle};Dbq=dataSource;UId=UserName;Pwd=Password;"
实际例子:
Set cnn = CreateObject("ADODB.Connection")
Set rst = CreateObject("ADODB.Recordset")
cnnStr = "Driver={Microsoft ODBC for Oracle};Dbq=DL580G9;UId=emssxjk;Pwd=emssxjk;"
cnn.Open cnnStr
也可以用Oracle的驱动程序:
cnnStr = "Driver={Oracle in OraHome90};Dbq=DL580G9;UId=emssxjk;Pwd=emssxjk;"
或者
cnnStr = "Driver={Oracle in OraHome90};Dbq=DL580G9;User Id=emssxjk;Password=emssxjk;"
其中{Oracle in OraHome90}是本人电脑上安装的简易客户端带的驱动程序,如下图所示:
ODBC数据源管理器的路径是“控制面板”--系统和安全--管理工具--数据源(ODBC),如下图:
【VBA研究】Excel连接Oracle的几点说明相关推荐
- Excel使用经验——Excel连接Oracle,发生3706错误的解决办法
今天真是遇到了一个奇葩问题,花了我四五个小时才解决. 本来昨天写好.调试好的Excel日报功能,今天不能用了. 发生了3706错误(运行时错误'3706',未找到提供程序,该程序可能未正确安装). 于 ...
- EXCEL 连接 ORACLE 查询数据到表格 中文乱码 中文变成?
1.安装odbc Cmd命令提示符 右键管理员方式打开 D: Cd D:\excel-oracle\instantclient_11_2 odbc_install.exe 若出现 Oracle ODB ...
- vba 用adodb连接mysql_【VBA研究】Excel VBA利用ADODB访问数据库使用小结
[转自] http://blog.csdn.net/iamlaosong/article/details/18043433 作者:iamlaosong ▲连接Oracle数据库 Set cnn = C ...
- oracle vba 数组_Excel VBA 连接各种数据库(二) VBA连接Oracle数据库
(2019.08.02更新)本文内容在Windows10 企业版64bit下测试通过 本文主要内容: Oracle环境配置 ODBC驱动设置.第三方驱动下载 VBA连接Oracle连接方法 Oracl ...
- VBA 连接Oracle 数据库
Sub?linkOracle()?? ?? ????Dim?strConn?As?String??'连接字符串?? ?????? ????Dim?dbConn?As?Object??'连接对象?? ? ...
- vba mysql 3706_EXCEL中VBA连接oracle数据库字符串“运行出现3706错误”
我在EXCEL中VBA连接oracle串如下 Conn.ConnectionString = "provider=oraoledb.oracle.1;password=******;user ...
- 【VBA研究】用VBA取得EXCEL任意列有效行数
作者:iamlaosong 用VBA对Excel文件进行处理的时候,关键字段的列号编程时往往是不知道的,需要通过参数设定才能知道,因此,我们编程的时候,就不能用这样的语句取有效行数: lineno = ...
- 【VBA研究】用VBA取得EXCEL有效行列数方法比较
作者:iamlaosong 我常用下面方式取得有效行数: maxrow=sheets(1).[A65536].End(xlUp).Row 这一句的含义是从A列65536行开始向上找,碰到第一个非空单元 ...
- quicksearch连接oracle,dos命令下连接oracle数据库表
Oracle表空间文件损坏后的排查及解决 版权声明:本文为博主原创文章,未经博主允许不得转载.https://blog.csdn.net/zergskj/article/details/6303417 ...
最新文章
- 不能跳过的《程序员的职业素养》(The Clean Coder)中的一个章节
- UML之交互图(协作图和顺序图)
- bzoj3224: Tyvj 1728 普通平衡树(splay)
- 电子书下载:C# 4.0 How To
- android studio turn off hyperv,Android Studio 无法运行模拟器
- 软件项目开发过程中主要遇到的核心问题小结
- java读取文件跳过_在Java中读取文本文件-为什么跳过行?
- vue怎么vw布局好用_vue cli3项目的pc自适应布局_vw
- 变换例题_矩阵的初等变换
- ora-01489 字符串连接的结果过长 解决方案
- C++---之Arraylist
- 不是我吹!超级全面的权限系统设计方案面世了
- 计算机主板 华硕 游戏用,华硕Z390-A大师主板,带你畅享极致游戏体验-华硕主板bios设置...
- 【重要更新】TX Text Control ActiveX X16发布 | 附下载
- 微商软文发布方法有哪些?文案怎么编辑?
- 神奇的量子世界——量子纠缠(Matlab实现)
- Linux系统之查找文件和打包压缩文件
- C++模板的特化与偏特化
- 一键式代购服务让,省时省力省心
- Mysql服务器安装步骤