在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
答案 0 :(得分:1)
我尝试了一些解决方案,现在可以使用下面的脚本。
DoCmd.TransferDatabase acImport, "ODBC Database", "ODBC;DSN=64oracle", acTable, tableName, tableName, False
问题是下面的字符串变量myDSN不是我在ODBC中设置的DSN。应在ODBC设置
中找到DSNmyDSN = "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键并开始输入111.111.111.11:1521
以打开: ODBC
。
在前3个DSN标签之一(用户,系统或文件)中,您应该列出名为Data Sources (ODBC)
的DSN(根据您的问题)。
如果未列出,则需要创建它。如果 列出,则可以双击它并确认配置。如果UID& PW列在那里,然后不应在Oracle in instantclient_11_2
字符串中指定它。
单击测试连接(或类似的东西)以测试数据源。 (确切的窗口设置将根据公司和版本而有所不同。)
另一个疑难解答步骤是 ping服务器:
点击 Windows键,输入myDSN
并点击 Enter
在打开的“命令提示符”窗口中,键入cmd
并按 Enter 。
响应应该表明您是否可以从计算机连接到服务器。
此外,我不确定ping 111.111.111.11
应该是/orcl
连接字符串的一部分。你从哪里得到那根绳子?它在别处工作了吗?任何进一步的帮助都需要更多信息,例如这些测试的结果,以及ODBC DSN设置的屏幕截图。