通过ODBC从Oracle访问vba导入表

时间:2018-02-10 07:41:17

标签: vba oracle import odbc

在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

2 个答案:

答案 0 :(得分:1)

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

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

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

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

答案 1 :(得分:0)

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

您可以检查您的Oracle ODBC DSN Data Source Name)的设置,如下所示:

  • 点击 Windows Key Windows键并开始输入111.111.111.11:1521以打开: ODBC

  • 在前3个DSN标签之一(用户,系统或文件)中,您应该列出名为Data Sources (ODBC)的DSN(根据您的问题)。

  • 如果未列出,则需要创建它。如果 列出,则可以双击它并确认配置。如果UID& PW列在那里,然后不应Oracle in instantclient_11_2字符串中指定它。

  • 单击测试连接(或类似的东西)以测试数据源。 (确切的窗口设置将根据公司和版本而有所不同。)

另一个疑难解答步骤是 ping服务器

  • 点击 Windows Key Windows键,输入myDSN并点击 Enter

  • 在打开的“命令提示符”窗口中,键入cmd并按 Enter

  • 响应应该表明您是否可以从计算机连接到服务器。

此外,我不确定ping 111.111.111.11应该是/orcl连接字符串的一部分。你从哪里得到那根绳子?它在别处工作了吗?任何进一步的帮助都需要更多信息,例如这些测试的结果,以及ODBC DSN设置的屏幕截图。

更多信息: