Не удается получить доступ к ODBC DB с MS Access2007 - PullRequest
5 голосов
/ 22 февраля 2012

У меня проблемы с доступом к базе данных Oracle через ODBC в Access, и я надеюсь, что у кого-нибудь есть совет. Я потратил немало времени, пытаясь найти решение, но ничего полезного не нашлось.

У меня есть настройка соединения в ODBC, которая обращается к базе данных Oracle 9. Я могу использовать опцию Тест на администраторе ODBC и получать сообщение Тест успешен. Я также могу подключиться к БД с помощью SQL * PLUS. Тем не менее, когда я пытаюсь создать новую связанную таблицу в Access 2007 и использовать параметр ODBC, я получаю следующую ошибку при попытке подключения:

ODBC--Call failed.</p> <p>[Oracle][ODBC][Ora]ORA-12154: TNS:could not resolve service name (#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 не может этого сделать?

EDIT (2012-02-22 15:05): Только что попробовал на другом ПК, и происходит то же самое, хотя другой пользователь вошел в систему и соединение с ним работало, так что, похоже, оно связано с моим профилем WinXP. Это помогает?

Любой совет будет принят с благодарностью.

BBZ

1 Ответ

5 голосов
/ 23 февраля 2012

Я думаю, что решил проблему, но потребовалось некоторое копание. Используя Process Monitor от Sysinternals, я обнаружил, что Access обнаружил файл sqlnet.ora в папке «Мои документы» моего профиля и использовал его вместо глобального файла tnsnames.ora.

Ранее мы отключили sqlnet.ora (переименованный в папку в папке Oracle), но Access обнаружил его в других местах. Я переименовал файл и теперь могу обращаться к БД, как и ожидалось, через ODBC.

Интересно, чему можно научиться!

Надеюсь, кто-нибудь найдет это полезным однажды.

Спасибо за чтение BBZ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...