无法使用 MS Access 2007 访问 ODBC DB

Posted

技术标签:

【中文标题】无法使用 MS Access 2007 访问 ODBC DB【英文标题】:Cannot access ODBC DB with MS Access2007 【发布时间】:2012-02-22 14:31:22 【问题描述】:

我在 Access 中通过 ODBC 访问 Oracle 数据库时遇到问题,希望有人能给我一些建议。我花了很长时间试图找到解决方案,但没有找到任何有用的东西。

我在 ODBC 中设置了访问 Oracle 9 数据库的连接。我可以使用 ODBC 管理员上的测试选项并收到测试成功消息。我还可以使用 SQL*PLUS 连接到数据库。但是,当我尝试在 Access 2007 中创建新的链接表并使用 ODBC 选项时,尝试连接时出现以下错误:

ODBC--Call failed.

[Oracle][ODBC][Ora]ORA-12154:TNS:无法解析服务名称 (#12154)[Microsoft][ODBC Driver Manager]Driver's SQLSetConnectAttr failed IM006 0 [Microsoft][ODBC Driver Manager]Driver's SQLSetConnectAttr failed (#0)

我知道 TNS 查找正在工作,因为 ODBC 管理工具与 tnsping 一样工作。问题是,为什么它在 Access 之外可以工作,而 Access 却不能呢?

编辑(2012-02-22 15:05):刚刚在另一台 PC 上尝试过,同样的事情发生了,虽然另一个用户登录并且连接对他们有效,所以它似乎链接到我的 WinXP 配置文件。这有帮助吗?

任何建议将不胜感激。

BBz

【问题讨论】:

标题中无需加上“已解决”。只需将您的答案作为您所做的答案。最终,您将能够将自己的答案标记为“已接受”答案。同时,有人可能会指出一些其他内容,从而进一步加深您对问题的理解。 【参考方案1】:

我想我已经解决了这个问题,但它需要一些挖掘。使用 Sysinternals 的 Process Monitor,我发现 Access 在我的配置文件的“我的文档”文件夹中找到了一个 sqlnet.ora 文件,并且优先使用它而不是全局 tnsnames.ora 文件。

我们之前禁用了 sqlnet.ora(重命名了 Oracle 文件夹中的文件),但 Access 显然会在其他位置检查它。我已重命名文件,现在可以通过 ODBC 按预期访问数据库。

你可以学到有趣的东西!

希望有一天有人会发现这很有用。

感谢阅读 BBz

【讨论】:

鲍勃,你能详细说明你的答案吗?我遇到了同样的问题。

以上是关于无法使用 MS Access 2007 访问 ODBC DB的主要内容,如果未能解决你的问题,请参考以下文章

MS-Access 2007 - 如何在点击事件中以编程方式访问子表单列数据

ms-access 2007 运行时和 lockWindowUpdate

无法更改 MS Access 2007 上的数据类型

MS Access 2007 查询不在 SQL Server 2008 上运行

如何在 Ms Access 2007 中使用 MySQL 视图,而不会出现字符串列的垃圾?

如何使用 ms-access-2016 开发应用程序并使其与以前的版本兼容 (2007)