QuickBooksDev Ответов: 2

Получение 3706 провайдер не может быть найден. Он может быть неправильно установлен при перемещении приложения в windows 10


У нас есть существующее VB.Net 2017 приложение, которое работает в течение многих лет на Windows 7. Он использует базу данных access.

Система была обновлена до Windows 10 и доступа к 2019 году. Если произойдет сбой как на 32-битном, так и на 64-битном office access 2016 и 2019 годов.

Ошибка
3706 провайдер не может быть найден. Возможно, он установлен неправильно

Приложение 32 - битное и должно оставаться 32-битным.

Строка подключения сначала попробовала
Поставщик=Microsoft.ACE.OLEDB.12.0;Источник данных=C:\ATX QBFILES\xxxxxx.mdb;
который работал на Windows 7, а затем попробовал
Поставщик=Microsoft.ACE.OLEDB.15.0;Источник данных=C:\ATX QBFILES\xxxxxx.mdb;

Я никак не могу понять, чего именно ему не хватает.

Есть идеи?

Спасибо и счастливых праздников всем.

Что я уже пробовал:

Изменение значений строки подключения с 12 на 15 и 16. Различные версии доступа.

2 Ответов

Рейтинг:
5

QuickBooksDev

Я отказался от использования строки подключения ACE и вместо этого использовал

"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=c:\mydatabase.mdb"
который работал с моим 32-битным приложением с 64 - битным доступом. Он также работал над тестовым 64-битным приложением с 32-битным доступом.

Не понимаю, почему это было так трудно.


Richard MacCutchan

Я использовал строку подключения ACE в 32-разрядном приложении в Windows 10 без проблем.

QuickBooksDev

Вам нужно было добавить что-нибудь еще? Это прекрасно в W7 с Access 2013, но то же самое приложение на W10 просто не было. То же самое установить MSI то же самое все, но не идти на W10/Access 2016.

Был ли у вас установлен office/access или вы использовали среду выполнения?

Рейтинг:
0

OriginalGriff

На первый взгляд - а без вашего приложения и, вероятно, источника это все, что может быть - это проблема размера. Был ли Win7 32-битным или 64-битным? Я бы предположил, что приложение VB было 32-битным, и вы сейчас работаете на 64-битной версии движка ACE DB engine, или приложение является "любым процессором" с 32-битным движком ACE под 64-битной ОС.

Вы не можете "переключать размеры процессора" после запуска приложения - поэтому 64-битное приложение не может использовать 32-битный движок, и наоборот.

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


QuickBooksDev

W7 был 64-битным. Приложение является 32-битным и должно оставаться 32-битным из-за других требований.

Как мне получить и установить любой двигатель ACE?

OriginalGriff

Удалите 64 - битный ACE, а затем установите 32-битную версию
https://www.microsoft.com/en-us/download/details.aspx?id=54920
Я понимаю, что можно установить их обоих на одну и ту же машину, но это всегда доставляло мне массу хлопот:
https://datasavvy.me/2017/07/20/installing-the-microsoft-ace-oledb-12-0-provider-for-both-64-bit-and-32-bit-processing/
Вам нужно будет указать правильную версию в строке подключения.

QuickBooksDev

Установил Microsoft Access Database_x64 и получил ту же ошибку на моем 64-битном компьютере Office 2016.

Не удалось установить ни одну из версий на 32-битной машине Office 2016, потому что 32-битная версия говорит, что у меня установлена 64-битная версия, а 64-битная версия говорит, что у меня установлена 32-битная версия.

Фу!!!

Попробую перезагрузиться

QuickBooksDev

Повторная загрузка не помогла.

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

Конечно, должен быть способ прочитать базу данных Access в Windows 10.