我尝试将excel / vba(office 2010)宏连接到远程SQL Oracle 11g数据库。
我安装了Oracle OraDb11g_home1
客户端。
数据库管理员为我提供了以下参数:
user205
password205
(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=128.128.128.20)(PORT=1527)))(CONNECT_DATA=(SERVICE_NAME=gestores)))
我的尝试:
1)
Sub GetData()
Dim SQL_String As String
Dim dbConnectStr As String
Set con = New ADODB.Connection
Set recset = New ADODB.Recordset
Dim recordCount As Long
dbConnectStr = "Provider=msdaora;Data Source=" & "gestores; User Id=user205" & "; Password=" & "password205"
con.ConnectionString = dbConnectStr
'con.Properties("Prompt") = adPromptAlways
con.Open dbConnectStr 'ConnectionString
MsgBox "Connected!!"
SQL_String = "select * from USER_TABLES"
recset.Open SQL_String, con
recset.MoveLast
recordCount = recset.recordCount
recset.MoveFirst
Do While Not recset.EOF = True
'Have a loop here to go through all the fields
recset.MoveNext
Loop
recset.Close
End Sub
这个消息告诉我这个消息:ORA-12154:TNS: could not resolve the connect identifier specified
2)
Sub OracleConnect()
Dim rs As ADODB.Recordset, c As New ADODB.Connection, r As Range
c.ConnectionString = "Driver={Microsoft ODBC for Oracle};CONNECTSTRING=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=128.128.128.20)(PORT=1527)))(CONNECT_DATA=(SERVICE_NAME=gestores))) ;UID=user205;PWD=password205;"
c.Open
rs.Open "select * from USER_TABLES", c, adOpenStatic, adLockReadOnly
Set ws = ActiveWorkbook.Sheets("Test")
Set r = ws.Range("A1")
r.CopyFromRecordset rs
rs.Close
c.Close
End Sub
这个消息告诉我这个消息:[Microsoft][OCDB Driver for Oracle][Oracle]ORA-12541:TNS: No listener