【问题标题】:Access vba import table from Oracle via ODBC通过 ODBC 从 Oracle 访问 vba 导入表
【发布时间】:2018-02-10 07:41:17
【问题描述】:

在 Access vba 中,我通过 ODBC 与 Oracle 数据库建立了连接,如下所示。

Dim adConn As ADODB.Connection
Dim adRs As ADODB.Recordset
Dim myDSN As String

Set adConn = New ADODB.Connection

myDSN = "Driver=Oracle in instantclient_11_2;DBQ=111.111.111.11:1521/orcl;UID=xxxxx;PWD=xxxxx;Persist Security Info=True"

adConn.Open myDSN

我可以通过以下外部数据、ODBC 数据库导入表...但我无法使用以下代码在 VBA 中导入表。错误消息是“无法与 myDSN 连接”。任何人都可以帮忙吗?谢谢

DoCmd.TransferDatabase acImport, "ODBC Database", "ODBC;DSN=myDSN", acTable, "TableName", "TableName", False

【问题讨论】:

  • 它说 ODBC-failed to connect with "driver=Oracle in instantclient_11_2"

标签: vba oracle import odbc


【解决方案1】:

我尝试了一些解决方案,下面的脚本现在可以工作了。

DoCmd.TransferDatabase acImport, "ODBC Database", "ODBC;DSN=64oracle", acTable, tableName, tableName, False

问题是下面的字符串变量 myDSN 不是我在 ODBC 中设置的 DSN。 DSN 应在 ODBC 设置中找到

myDSN = "Driver=Oracle in instantclient_11_2;DBQ=111.111.111.11:1521/orcl;UID=xxxxx;PWD=xxxxx;Persist Security Info=True"

【讨论】:

    【解决方案2】:

    这是一个看起来很奇怪的连接字符串,但我想这并不意味着如果您的服务器 IP/端口实际上是 111.111.111.11:1521(或者如果您故意屏蔽它!)就错了!

    您可以像这样检查您的 Oracle ODBC DSN (Data Source Name) 的设置:

    • 点击 Windows 键并开始输入 ODBC 以打开:Data Sources (ODBC)

    • 在前 3 个 DSN 选项卡(用户、系统或文件)之一下,您应该列出一个名为 Oracle in instantclient_11_2 的 DSN(根据您的问题)。

    • 如果未列出,则需要创建它。如果它列出,您可以双击它并确认配置。如果那里列出了 UID 和 PW,那么您不应该在您的 myDSN 字符串中指定它。

    • 单击 Test Connection(或类似内容)以测试数据源。 (具体的窗口设置会因公司和版本而异。)

    另一个故障排除步骤是ping服务器

    • 点击Windows键,输入cmd并点击Enter

    • 在打开的命令提示符窗口中,输入ping 111.111.111.11 并按Enter

    • 响应应该给出一些指示,表明您是否可以从您的计算机连接到服务器。

    我也不确定/orcl 是否应该是您的myDSN 连接字符串的一部分。你从哪里得到那个字符串?它在其他地方有效吗?任何进一步的帮助都需要更多信息,例如这些测试的结果,可能还需要 ODBC DSN 设置的屏幕截图。

    更多信息:

    【讨论】:

    • 您好,感谢您的回答。正如我所说,ODBC 已经正确设置并测试成功链接 Oracle 数据库。在 Access 中,我什至可以通过单击“外部数据”->“ODBC 数据库”->...来导入表。但我不知道如何在 VBA 中编写此导入代码
    • 好吧,你没说报错后测试成功了。
    • 我的 UID/PW 建议怎么样?另见this related answer
    猜你喜欢
    • 2015-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多