Excel VBA连接并操作Oracle

时间:2021-11-11 04:31:42

以下是通过Excel 的VBA连接Oracle并操作Oracle相关数据的示例
Excel 通过VBA连接数据库需要安装相应的Oracle客户端工具并引用ADO的相关组件,引用ADO相关组件可按如下步骤操作: 
  1、打开VBA编辑器,在菜单中点选“工具”,“引用”; 
  2、确保“Microsoft ActiviteX Data Objects 2.8 Library”和“Microsoft ActiviteX Data ObjectS Recordset 2.8 Library”被勾选上。 
  建立连接过程,代码如下: 

复制代码代码如下:


Public Sub ConOra() 
On Error GoTo ErrMsg: 
Dim ConnDB As ADODB.Connection 
Set ConnDB = New ADODB.Connection 
Dim ConnStr As String 
Dim DBRst As ADODB.Recordset 
Set DBRst = New ADODB.Recordset 
Dim SQLRst As String 
Dim OraOpen As Boolean 
OraOpen = False 
OraID="Orcl" 'Oracle数据库的相关配置 
OraUsr="user" 
OraPwd="password" 
ConnStr = "Provider = MSDAORA.1;Password=" & OraPwd & _ 
";User ID=" & OraUsr & _ 
";Data Source=" & OraID & _ 
";Persist Security Info=True" 
ConnDB.CursorLocation = adUseServer 
ConnDB.Open ConnStr 
OraOpen = True '成功执行后,数据库即被打开 
'MsgBox "Connect to the oracle database Successful!", vbInformation, "Connect Successful" 
DBRst.ActiveConnection = ConnDB 
DBRst.CursorLocation = adUseServer 
DBRst.LockType = adLockBatchOptimistic 
SQLRst = "Select * From TstTab" 
DBRst.Open SQLRst, ConnDB, adOpenStatic, adLockBatchOptimistic 
DBRst.MoveFirst 
Exit Function 
ErrMsg: 
OraOpen = False 
MsgBox "Connect to the oracle database fail ,please check!", vbCritical, "Connect fail!" 
End Function 
Public Sub ConOra() 
On Error GoTo ErrMsg: 
Dim ConnDB As ADODB.Connection 
Set ConnDB = New ADODB.Connection 
Dim ConnStr As String 
Dim DBRst As ADODB.Recordset 
Set DBRst = New ADODB.Recordset 
Dim SQLRst As String 
Dim OraOpen As Boolean 
OraOpen = False 
OraID="Orcl" 'Oracle数据库的相关配置 
OraUsr="user" 
OraPwd="password" 
ConnStr = "Provider = MSDAORA.1;Password=" & OraPwd & _ 
";User ID=" & OraUsr & _ 
";Data Source=" & OraID & _ 
";Persist Security Info=True" 
ConnDB.CursorLocation = adUseServer 
ConnDB.Open ConnStr 
OraOpen = True '成功执行后,数据库即被打开 
'MsgBox "Connect to the oracle database Successful!", vbInformation, "Connect Successful" 
DBRst.ActiveConnection = ConnDB 
DBRst.CursorLocation = adUseServer 
DBRst.LockType = adLockBatchOptimistic 
SQLRst = "Select * From TstTab" 
DBRst.Open SQLRst, ConnDB, adOpenStatic, adLockBatchOptimistic 
DBRst.MoveFirst 
Exit Function 
ErrMsg: 
OraOpen = False 
MsgBox "Connect to the oracle database fail ,please check!", vbCritical, "Connect fail!" 
End Function 


可以根据需要调整SQL语句,获取相关数据,并输出到Excel完成数据处理 
上述代码在Windows XP SP3/2003 SP2 + Office2003下测试通过.