Как преобразовать 32-разрядный код VBA в 64-разрядный код VBA

#excel #vba

Вопрос:

Я пытаюсь запустить макрокод, который работал в 32-разрядном (раньше работал), но так как я только что обновил свою машину, я использую 64-разрядный Excel, и этот код больше не работает. Мне нужно, чтобы это работало в 64-разрядной версии. Пожалуйста, помогите мне исправить это, пожалуйста:

 AdoConn 
     .ConnectionString = “provider=Microsoft.Jet.OLEDB.4.0;Data Source=“ amp;  strFileSource amp; “;Persist Security Info=False” 
     .Open
 

Это показывает проблему в .Open

Огромное спасибо.

Комментарии:

1. 32-разрядный код будет работать, но вам также необходимо установить 32-разрядные драйверы

2. этот код больше не работает и слишком расплывчат, чтобы быть полезным. В чем это не работает ?

3. docs.microsoft.com/en-us/office/troubleshoot/access/…

4. Вам действительно нужно использовать 64-разрядный Office? Если нет, установите 32-разрядную версию.

Ответ №1:

Вы можете обнаружить несовместимость с драйвером Microsoft.Jet.OLEDB.4.0 (32-разрядный) в 64-разрядной ОС.

Вы можете использовать 32-разрядный драйвер Microsoft.Jet.OLEDB.4.0 (32-разрядная версия) в 64-разрядной ОС, но вы должны принудительно выполнить сборку приложения в 32-разрядном режиме.

Если вы не хотите или не можете этого сделать, доступна 64-разрядная версия драйвера (Microsoft.ACE.OLEDB.12.0), которая работает на 32 и 64-разрядной ОС.

Попробуйте изменить:

 .ConnectionString = "provider=Microsoft.Jet.OLEDB.4.0;Data Source=" amp;  strFileSource amp; ";Persist Security Info=False"
 

Для

 .ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" amp;  strFileSource amp; ";Persist Security Info=False"
 

Если драйвер не зарегистрирован на вашем компьютере, его можно загрузить с веб-сайта Корпорации Майкрософт: https://www.microsoft.com/en-us/download/details.aspx?id=54920

Кроме того, не только 4.0 меняется на 12.0, » Jet «также меняется на «ACE».