[Microsoft] [ODBC驱动程序管理器]未找到数据源名称且未指定默认驱动程序

时间:2015-04-22 02:19:41

标签: excel-vba oracle11g ado vba excel

我在excel 2013的电子表格中编写了一些VBA代码,代码将连接Oracle 11g以将一些数据写入其中。我使用以下代码连接远程Oracle服务器:

Private Function open_DB(tnsInfo As String, userName As String, pwd As String) As ADODB.Connection
    Dim conn As ADODB.Connection
    Dim connStr As String
    Dim tnsInfoArr As Variant

    tnsInfoArr = getTnsProperty(tnsInfo, ";")

    On Error GoTo Error_Handling
    Set conn = New ADODB.Connection
    'connStr =
    connStr = "Driver={Microsoft ODBC for Oracle}; " & _
                 "CONNECTSTRING=(DESCRIPTION=" & _
                 "(ADDRESS=(PROTOCOL=TCP)" & _
                 "(HOST=" & tnsInfoArr(1) & ")(PORT=" & tnsInfoArr(2) & "))" & _
                 "(CONNECT_DATA=(SERVICE_NAME=" & tnsInfoArr(0) & "))); uid=" & userName & " ;pwd=" & pwd & ";"
    conn.ConnectionString = connStr
    conn.CursorLocation = adUseClient
    conn.Open
    conn.CommandTimeout = 120
    If conn.State = adStateOpen Then
        'MsgBox "connect to Oracle successfully"
        'conn.Close
    End If
    Set open_DB = conn
End Function   

此代码在我的计算机上正常工作但在我同事的PC中无效,跟随我同事的机器中显示的错误消息:
[Microsoft] [ODBC驱动程序管理器]未找到数据源名称且未指定默认驱动程序
ADO错误#: - 2147467259
...
我的同事需要在他的电脑上进行一些配置吗?但我记得我没有在自己的电脑上配置一些东西 任何人都可以告诉我如何解决这个问题? 我的操作系统版本是64位Windows 7企业版SP1 我使用的是MS Office 2013 64位版本。

1 个答案:

答案 0 :(得分:0)

我认为您需要通过 ODBC数据源管理(32位/ 64位)设置用户 DSN 。还要确保您的同事的PC具有运行代码所需的所有驱动程序。

干杯。