Не удается открыть соединение в базе данных доступа через ADODB

У меня есть код для работы в Excel VBA.

Dim con, com

Const adCmdStoredProc = 4
Const scon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Accessdbpath.accdb;Persist Security Info=False;"

Set con = CreateObject("adodb.connection")
Set com = CreateObject("adodb.command")

con.Open scon
Set com.activeconnection = con
com.CommandType = adCmdStoredProc
com.CommandText = "accessqueryname"
com.Execute
Set com.activeconnection = Nothing
Set con = Nothing

Я пытался запустить ту же процедуру на сервере (без офиса MS) .
Поэтому я попытался создать файл VBS, чтобы сделать это вместо Excel VBA.
. Однако я не могу заставить его работать. Я получил ошибку ниже:

Не удается открыть соединение в базе данных доступа через ADODB

Edit1: Я проверял с помощью проводника процессов, запускаю ли я скрипт на 64- или 32-разрядной версии, а на 64-разрядной.

Не удается открыть соединение в базе данных доступа через ADODB

@AnsgarWiechers В опубликованной ветке нет принятого ответа, и главный ответ не работает для меня.

L42 10.09.2018 02:38

Провайдер вообще установлен? Если нет, проверьте эта ветка.

Ansgar Wiechers 10.09.2018 12:14

@AnsgarWiechers Конечно, это работает в Excel VBA. Используют ли VBS и VBA разных провайдеров, учитывая, что я использовал одну и ту же строку подключения, которая должна указывать на один и тот же драйвер. Кстати, в настоящее время я тестирую это на той же машине, где я тестирую файл Excel с тем же кодом.

L42 10.09.2018 23:57

Если провайдер установлен правильно, обычная причина наблюдаемой ошибки заключается в том, что сценарий был запущен с 64-битным интерпретатором, а не с 32-битным интерпретатором. Если вы действительно запускали сценарий с 32-разрядным интерпретатором (дважды проверьте с помощью Process Explorer), вам необходимо предоставить дополнительную информацию.

Ansgar Wiechers 11.09.2018 01:28

@AnsgarWiechers Я пробовал то, что Найлз указал в своем посте, но то же самое. Вы это имели в виду? Или мне нужно проверить где-нибудь еще, например обозреватель процессов, о котором вы говорите? Я не думаю, что у меня это установлено.

L42 11.09.2018 01:55

Да, именно так вы обычно запускаете 32-битный интерпретатор. В Process Explorer вы можете добавить столбец, показывающий, является ли процесс 32-битным или 64-битным. Используйте это, чтобы убедиться, что запущенный экземпляр интерпретатора VBScript на самом деле 32-битный. Process Explorer не требует установки. Просто скачайте zip-архив, распакуйте его и запустите оттуда исполняемый файл.

Ansgar Wiechers 11.09.2018 10:12

@AnsgarWiechers См. Мою редакцию. Кстати, спасибо, что указали, что его не нужно устанавливать.

L42 12.09.2018 09:03

Попробуйте запустить C:\Windows\SysWOW64\cmd.exe (этот экземпляр CMD должен быть 32-битным в Process Explorer) и запустить оттуда свой VBScript с 32-битным C:\Windows\SysWOW64\cscript.exe. Но даже при запуске из 64-битного CMD C:\Windows\SysWOW64\cscript.exe и C:\Windows\SysWOW64\wscript.exe должны запускаться как 32-битные процессы, а не как 64-битные, как на вашем скриншоте.

Ansgar Wiechers 12.09.2018 10:32
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
8
70
0

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