MS Access меняет ссылочный путь на более не существующий путь - PullRequest
0 голосов
/ 06 января 2012

Когда я компилирую приложение MS Access 2003 в 64-разрядной версии Windows 7 с пакетом обновления 1 (SP1) и запускаю его в 32-разрядной версии Windows 7 с пакетом обновления 1 (SP1), путь Microsoft Common Dialog Control 6.0 (SP3) изменяется с C:\Windows\SysWOW64\comdlg32.ocx на \\shared\access\comdlg32.ocx, который является общим диском приложения запускается для пользователей Windows 7 SP1 32bit.

Мне нужно, чтобы на 32-битных машинах ссылка была: C:\Windows\System32\comdlg32.ocx

Ошибка 32-битного компьютера: Dim Cnxn As ADODB.Connection Set Cnxn = New ADODB.Connection Но когда на общий 32-битный компьютер правильно ссылаются на элемент управления Common Dialog Control, просматривая файл comdlg32, добавляя его в качестве ссылки и перекомпилируя, приложение работает нормально на 32-битном ПК.

Что общего управления диалогом связано с ADODB? Я не думаю, что я использую Microsoft Common Dialog Control где-либо. Я сделаю еще тестирование ...

Ответы [ 2 ]

1 голос
/ 06 января 2012

Если вы используете его для диалога, удалите ссылку и замените ее решением, приведенным в этой статье:

http://access.mvps.org/access/api/api0001.htm

РЕДАКТИРОВАТЬ: Это также должно работать в более новой версии, потому что это просто способ обойти с помощью элемента управления comdlg32.ocx.

Вы получаете ошибку ADODB, потому что это еще одна ссылка, когда comdlg32.ocx не может загрузить Access выходит из цикла загрузки ссылок, поэтому компонент ADODB не загружается.

Другой вариант, который вы можете попробовать - удалить ссылку и использовать позднюю привязку, например

Dim fDialog As Object ' previous Office.FileDialog
Set fDialog = CreateObject("Office.FileDialog")
0 голосов
/ 06 января 2012

Ссылка не имеет ничего общего с ADODB.

Тест, чтобы увидеть, используете ли вы его, прост: удалите ссылку. Если проект не удается скомпилировать, значит, ссылка использовалась.

Если вы не используете ссылку, удалите ее, и ваша проблема решена. Если вы используете ссылку, вы можете заменить ее функциональность вызовами Windows API, как предложил Арнольдиус.

...