Office中国论坛/Access中国论坛

标题: access连接oracle数据库 [打印本页]

作者: jay_0218    时间: 2009-11-23 21:02
标题: access连接oracle数据库
各位 :

          大家好
最近我碰到个问题,我想用ACCESS连接局域网内的服务器上Oracle数据库,能不能不要在每个客户端安装 ORACLE数据库的客户端,然后通ODBC的方式连接?我试验了下在没有安装ORACLE数据库的客户端电脑上 通过ODBC好像不可以连接,另外想指教下各位 是不是通过ODBC连接的方式是不是要在每个客户端安装?


以上这个问题我想了好久,但没有好的方法,请各位大侠帮我看看,谢谢!
作者: jay_0218    时间: 2009-11-23 21:06
麻烦版主帮我看看谢谢
作者: fan0217    时间: 2009-11-23 21:23
通过ODBC连接是没有问题的。
作者: jay_0218    时间: 2009-11-23 21:32
总的思路,是利用ADO和QueryTable完成Oracle数据库的连接和读取
你上面那段代码出错原因的分析:
1、
看看vba的“工具”菜单中“引用”里面有没有引用
Microsoft ActiveX Data Objects 2.0 Library
如果没有,勾上它
2、把
cnn1.ConnectionString = "data source = vgsm;user id=vgsm;password=vgsm;"
这一句改为
cnn1.Open "Provider=MSDAORA.1;password=vgsm;password=vgsm;data source = vgsm;Persist Security Info=True"
其中,data source的名字是你的Oracle客户端定义的TNS名称
3、Dim rstemployees As New ADODB.Recordset
     rstemployees.Open Source:=sqlcode,ActiveConnection:=cnn1,CursorType:=adOpenDynamic,LockType:=adLockReadOnly,Options:=adCmdText
with Sheet1.QueryTable.Add(Connection:=rstemployees,Destination:=Rang("A1:D1"))
  .FieldNames=False '是否现实字段名称
  .RowNumbers=False '是否用一列显示行号
  .RefreshStyle=xlOverwriteCells
end with
上述代码中,Sheet1代表要灌入数据的工作表,sqlcode代表要执行的sql查询语句,
Rang("A1:D1"))代表灌入的数据第一行的位置
至于QueryTable的属性设置可以参考vba的帮助,很详细,在此不再一一说明,QueryTable是个好东西
作者: jay_0218    时间: 2009-11-24 10:19
"通过ODBC连接是没有问题的。"

这个需要按照ORACLE客户端
放到客户端时是不是要在每个客户端设置ODBC
作者: jay_0218    时间: 2009-11-24 10:22
我找到个 Oracle精简版客户端及ODBC驱动的安装,现分享给各位


第一步:
先下载《Oracle9i客户端精简版3.0.msi》,地址如下:
http://www.xdowns.com/soft/softdown.asp?softid=33313

安装以后在开始菜单里找到tnsnames.ora 用记事本打开编辑。删掉不要的tns,按其中的格式添加自己需要的tns。这时候pl/sql developer等工具就可以连上了。

现在安装odbc驱动。为什么要装呢?比如说用PowerDesigner做reverse engineering的时候,非得配个odbc源不可。

第二步:
下载
http://download.oracle.com/otn/u ... racle9i/ora9202.exe
解压到本地的某个固定目录,如ORA9202下。
这时候还得借助oracle安装盘,运行universal installer。选择产品的时候选择
刚才自解压包中解出来的 ORA9202\Disk1\stage\products.jar

第三步:
配置环境变量,在path中添加如 %ProgramFiles%\Oracle\ora90\BIN; 注意“%ProgramFiles%\Oracle”是第一步中精简版的安装目录。

注意第三步,如果不做的话,添加odbc数据源的时候会报如下错误 ;)
---------------------------
Driver title
---------------------------
Error Cannot Load Resource File sqresus.dll
---------------------------
确定




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3