Access ODBC Проблема: ODBC- Ошибка вызова

Я создал клиентский интерфейс Access для базы данных SQL на своем ПК для использования в моей компании. Я использую файловое соединение ODBC и помещаю и файл ODBC, и файл Access на общий сетевой диск.

Когда я загружаю файл доступа, по какой-то причине он, похоже, по умолчанию использует свои учетные данные для входа в Windows и отлично загружает данные. Когда пользователь пытается открыть файл, он получает сообщение об ошибке "ODBC --call fail.". Я могу открыть диспетчер связанных таблиц для них и проверить "запросить новое местоположение", затем указать файл ODBC, и все это работает нормально... однако, похоже, ничего не сохраняет. Я получаю ошибку каждый раз, когда кто-то другой, кроме меня, открывает этот файл.

Есть идеи, что может быть не так? По профессии я не из Access, это просто инструмент, который нам нужен на данный момент.

--EDIT: для уточнения я использую файловое соединение ODBC

- Редактировать 2--

Загадка мне это. Так что я решил эту проблему, и наткнулся на что-то интересное. Я вошел как один из моих пользователей и сделал следующее:

  1. Создайте новый файл доступа, который ссылается на файл ODBC-соединения на рабочем столе.
  2. Создайте 3-4 связанные таблицы в файле доступа, используя файл ODBC на рабочем столе.
  3. Сохраните и закройте файл доступа.
  4. Повторно откройте указанный файл.... и я получаю ошибку соединения ODBC! Сразу после того, как все было хорошо в новом файле!

Кто-нибудь когда-нибудь испытывал это?

5 ответов

Решение

Ну, я смог немного сузить проблему. Access почему-то пытается использовать учетные данные Windows вместо имени пользователя в моем файле ODBC. Я не могу найти способ обойти это, но я смог решить проблему, создав учетные записи на моем SQL Server для пользователей Windows, которым необходим доступ.

Я не очень доволен необходимостью управлять большим количеством входов в систему, но именно это я и сделал, чтобы решить эту проблему.

После того, как я ударился головой о стену с такой же проблемой, я наконец обнаружил, что у меня есть флажок в форме доступа, который по умолчанию имеет значение NULL. Поскольку я поместил бэкэнд в SQL, поля флажков не могут быть NULL, но сообщение "ODBC Call Failed" не помогло. Наконец я попытался добавить запись прямо в таблицу через Access, и это дало дополнительную информацию. Я установил все флажки по умолчанию на ноль, и проблема решена!

Я предполагаю, что вы не правильно установили ODBC на ПК каждого пользователя. Вы должны создать ODBC-определение. Вы можете создать соответствующие заявления непосредственно в реестре, смотрите эту ветку
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.ini

если вы дадите то же имя, что и на компьютере разработчика, то это сработает. Вот как я делаю это с помощью своих клиентских приложений, которые я разрабатываю на своей машине, а затем устанавливаю на клиентском сайте.

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

Я использовал соединение ODBC. При запуске файла с помощью кнопки запуска "Дизайн" он работал нормально. Когда я попытался использовать панель навигации и дважды щелкнуть по ней, произошла ошибка.

Структура моего запроса была проблемой; Я переносил запрос к SQL-серверу, и передача параметров в одинарных кавычках не была хорошо принята в Access. Изменение их на двойные кавычки "заставило это работать.

В моем случае были столбцы, имеющие комбинации подстрок +' или -'; ошибка исчезла после удаления символов ' из определения столбца

Другие вопросы по тегам