无法使用 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 查询不在 SQL Server 2008 上运行