- Remove From My Forums
-
Question
-
I am trying to connect to an Oracle Database from Excel VBA and have Windows7 SP1 installed on my machine.
I am getting an error message when it tries to open the connection, I have also installed Oracle Client and SQL Developer and the same connection string works fine from SQL Developer but not VBA.
Earlier I was using provider as OraOLEDB.Oracle but I was getting RunTime Error -2147467259(80004005) Automation Unspecified error, then I removed . Oracle from it which led to 3706 error.
Could you please suggest me something here as now i have spent 2 days almost here with nothing working out, am I missing any driver or setting ?
PFB the snippet of code, also i have added MS Active X Dataobject 6.1 library and MS Active X Data Object recordset 6.0 library.
Conn_String = «Provider=OraOLEDB;Data Source=(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 123)(PORT = 123)) )(CONNECT_DATA =(SERVICE_NAME = abc)));User
Id=abc;Password=abc;»
Set cn = New ADODB.Connection
With cn
.ConnectionString = Conn_String
.CursorLocation = adUseClient
.Open
End With
If cn.State = adStateOpen Then
MsgBox («connected successfully.»)
Else: MsgBox («Error in connection.»)
End If
Answers
-
Hi,
>>I am getting an error message when it tries to open the connection, I have also installed Oracle Client and SQL Developer and the same connection string works fine from SQL Developer but not VBA.<<
According to your description, I assume the code has no compile error since it can connect to SQL Server successfully. So the issue may be more related to the connection string or your Oracle provider rather than
development of Excel or VBA. Please check whether the provider is correct in your connection string.After researching, I find the Runtime Error 3706 means «Provider cannot be found».
Here is a KB article about this topic for your reference:
PRB: ERR «ADO Could Not Find The Specified Provider»The MSDASQL OLE DB provider is either unavailable or is not registered. This can be caused by an incomplete upgrade or a bad install of the Microsoft Data Access Components (MDAC) components.
Here are two ways to resolve this problem:
- Register the Msdasql.dll using the following command:
REGSVR32 «C:Program FilesCommon FilesSystemole dbMSDASQL.DLL»
- Reinstall the Microsoft Data Access Components used. The newest version of MDAC can be downloaded from the following Web site:
By the way, since this forum is for Office development, for more question about connect to Oracle, you could also consider posting in
Oracle official forum for more responses.
We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
Click
HERE to participate the survey.-
Edited by
Friday, April 11, 2014 7:32 AM
-
Marked as answer by
Luna Zhang — MSFT
Wednesday, April 16, 2014 7:40 AM
- Register the Msdasql.dll using the following command:
-
Thanks Luna for your reply, I uninstalled the Oracle client and installed it manually and it worked, Thanks.
-
Edited by
PoonamDubey
Friday, April 11, 2014 11:38 AM -
Marked as answer by
Luna Zhang — MSFT
Wednesday, April 16, 2014 7:41 AM
-
Edited by
I am trying to connect Visual Basic to MS Access using ADODB. But as I execute my code, it prompts: «Provider cannot be found.It may not be installed properly.» But when I check on my directory I’ve got my «msjetoledb40.dll» installed.
Here is my code:
Dim conn As ADODB.Connection, rec As ADODB.Recordset
Sub sample()
Set conn = New ADODB.Connection
conn.Open ("Provider=Microsoft.Jet.OLEDB 4.0;Data Source=C:sample.mdb;Persist Security Info=false;")
End Sub
asked Nov 29, 2013 at 5:18
1
This would be better:
Sub sample()
Dim conn As ADODB.Connection, rec As ADODB.Recordset
Set conn = New ADODB.Connection
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:sample.mdb;"
conn.Open
End Sub
You missed a point.
Microsoft.Jet.OLEDB 4.0 => Microsoft.Jet.OLEDB.4.0
Ref: http://www.connectionstrings.com/.
answered Nov 29, 2013 at 7:26
jacouhjacouh
8,3275 gold badges30 silver badges43 bronze badges
1
Confirming the version of your MS Office on which the script is running. If you have installed MS Office 2013 or later, you should revise the connection string from:
Provider=Microsoft.Jet.OLEDB 4.0;Data Source=C:sample.mdb;Persist Security Info=false;
to:
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:sample.mdb;Persist Security Info=false;
At least, this sovled my problem.
answered Nov 15, 2017 at 2:45
My solution:
Error 3706
cs = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & sPath & ";Persist Security Info=False;"
Just Change 12.0 for 15.0
cs = "Provider=Microsoft.ACE.OLEDB.15.0;Data Source=" & sPath & ";Persist Security Info=False;"
and works, always you must to try change the version of the controller!.
msanford
11.6k10 gold badges67 silver badges92 bronze badges
answered Aug 16, 2017 at 18:58
Номер ошибки: | Ошибка 3706 | |
Название ошибки: | Excel Error 3706 | |
Описание ошибки: | Ошибка 3706: Возникла ошибка в приложении Microsoft Excel. Приложение будет закрыто. Приносим извинения за неудобства. | |
Разработчик: | Microsoft Corporation | |
Программное обеспечение: | Microsoft Excel | |
Относится к: | Windows XP, Vista, 7, 8, 10, 11 |
Определение «Excel Error 3706»
Это наиболее распространенное условие «Excel Error 3706», известное как ошибка времени выполнения (ошибка). Разработчики программного обеспечения, такие как Microsoft Corporation, обычно принимают Microsoft Excel через несколько уровней отладки, чтобы сорвать эти ошибки перед выпуском для общественности. Тем не менее, возможно, что иногда ошибки, такие как ошибка 3706, не устранены, даже на этом этапе.
После установки программного обеспечения может появиться сообщение об ошибке «Excel Error 3706». Когда появится ошибка, пользователи компьютеров смогут уведомить разработчика о наличии ошибки 3706 через отчеты об ошибках. Microsoft Corporation вернется к коду и исправит его, а затем сделает обновление доступным для загрузки. Поэтому, когда вы сталкиваетесь с запросом на обновление Microsoft Excel, это обычно связано с тем, что это решение для исправления ошибки 3706 и других ошибок.
Как триггеры Runtime Error 3706 и что это такое?
Сбой во время выполнения Microsoft Excel, как правило, когда вы столкнетесь с «Excel Error 3706» в качестве ошибки во время выполнения. Проанализируем некоторые из наиболее распространенных причин ошибок ошибки 3706 во время выполнения:
Ошибка 3706 Crash — Номер ошибки вызовет блокировка системы компьютера, препятствуя использованию программы. Обычно это происходит, когда Microsoft Excel не может обработать данные в удовлетворительной форме и поэтому не может получить ожидаемый результат.
Утечка памяти «Excel Error 3706» — Когда Microsoft Excel обнаруживает утечку памяти, операционная система постепенно работает медленно, поскольку она истощает системные ресурсы. Возможные искры включают сбой освобождения, который произошел в программе, отличной от C ++, когда поврежденный код сборки неправильно выполняет бесконечный цикл.
Ошибка 3706 Logic Error — логическая ошибка Microsoft Excel возникает, когда она производит неправильный вывод, несмотря на то, что пользователь предоставляет правильный ввод. Это видно, когда исходный код Microsoft Corporation включает дефект в анализе входных данных.
Как правило, такие Microsoft Corporation ошибки возникают из-за повреждённых или отсутствующих файлов Excel Error 3706, а иногда — в результате заражения вредоносным ПО в настоящем или прошлом, что оказало влияние на Microsoft Excel. Как правило, решить проблему можно заменой файла Microsoft Corporation. В некоторых случаях реестр Windows пытается загрузить файл Excel Error 3706, который больше не существует; в таких ситуациях рекомендуется запустить сканирование реестра, чтобы исправить любые недопустимые ссылки на пути к файлам.
Классические проблемы Excel Error 3706
Общие проблемы Excel Error 3706, возникающие с Microsoft Excel:
- «Ошибка Excel Error 3706. «
- «Ошибка программного обеспечения Win32: Excel Error 3706»
- «Возникла ошибка в приложении Excel Error 3706. Приложение будет закрыто. Приносим извинения за неудобства.»
- «Excel Error 3706 не может быть найден. «
- «Excel Error 3706 не найден.»
- «Проблема при запуске приложения: Excel Error 3706. «
- «Excel Error 3706 не выполняется. «
- «Excel Error 3706 остановлен. «
- «Ошибка пути программного обеспечения: Excel Error 3706. «
Ошибки Excel Error 3706 EXE возникают во время установки Microsoft Excel, при запуске приложений, связанных с Excel Error 3706 (Microsoft Excel), во время запуска или завершения работы или во время установки ОС Windows. При появлении ошибки Excel Error 3706 запишите вхождения для устранения неполадок Microsoft Excel и чтобы HelpMicrosoft Corporation найти причину.
Причины ошибок в файле Excel Error 3706
Эти проблемы Excel Error 3706 создаются отсутствующими или поврежденными файлами Excel Error 3706, недопустимыми записями реестра Microsoft Excel или вредоносным программным обеспечением.
В основном, осложнения Excel Error 3706 связаны с:
- Недопустимый Excel Error 3706 или поврежденный раздел реестра.
- Вирус или вредоносное ПО, которые повредили файл Excel Error 3706 или связанные с Microsoft Excel программные файлы.
- Excel Error 3706 злонамеренно удален (или ошибочно) другим изгоем или действительной программой.
- Другая программа, конфликтующая с Excel Error 3706 или другой общей ссылкой Microsoft Excel.
- Неполный или поврежденный Microsoft Excel (Excel Error 3706) из загрузки или установки.
Продукт Solvusoft
Загрузка
WinThruster 2022 — Проверьте свой компьютер на наличие ошибок.
Совместима с Windows 2000, XP, Vista, 7, 8, 10 и 11
Установить необязательные продукты — WinThruster (Solvusoft) | Лицензия | Политика защиты личных сведений | Условия | Удаление
- Remove From My Forums
-
Question
-
Hi all,
I recently (after a lot of sweat) Managed to install VB6 on Win8.
Fact is I get Runtime 3706 error (Provider not found, it may be not properly installed) when trying to connect to na accdb (Access 2010 database) vi aMicrosoft.Ace.oledb.12.0,
The amusing part is that Microsoft.Ace.oledb.12.0 is fully working and being recognized by Excel (VBA).
Since I have a bag full of some 5 years of médium-t0-big Works in VB6, and, being 70yrs old, have not the nerve, nor the skills to migrate all the bulk to VS 2010, please, help
-
Moved by
Monday, November 19, 2012 9:00 AM
(From:Visual Basic General)
-
Moved by
Скрипт 5468 / 1148 / 50 Регистрация: 15.09.2012 Сообщений: 3,514 |
||||
1 |
||||
07.11.2013, 15:06. Показов 14985. Ответов 5 Метки нет (Все метки)
Скажите, пожалуйста, какая ошибка в макросе. Макрос
Вообще задача следующая: нужно из Excel получить доступ к CSV-файлу, чтобы работать с CSV-файлом не в программе «Excel», а как с базой данных. Так по идее правильнее будет. Ещё хотелось бы пользоваться одним поставщиком (а не несколькими) в разных версиях «MS Office». Примечание Поставщик (имеет ещё название «провайдер») — это программа, которая подключается к базе данных. База данных в данной теме — это CSV-файл. Поставщик в данной теме «Microsoft Text ODBC Driver» (в макросе поставщик записан «{Microsoft Text Driver (*.txt; *.csv)}».
0 |
Аксима 6076 / 1320 / 195 Регистрация: 12.12.2012 Сообщений: 1,023 |
||||
07.11.2013, 16:28 |
2 |
|||
Есть несколько замечаний по вашей строке подключения:
На моей машине из числа ODBC поставщиков есть поставщик MSDASQL, а исправленная программа выглядит так: ODBC подключение к текстовому файлу
С уважением,
1 |
5468 / 1148 / 50 Регистрация: 15.09.2012 Сообщений: 3,514 |
|
07.11.2013, 17:25 [ТС] |
3 |
Aksima, строку подключения я смотрел на специальном сайте (http://www.connectionstrings.com/textfile/), но название параметра не заметил. Сделал вместо слова «Provider» слово «Driver» и заработало. Aksima, сейчас посмотрел в интернете, но не понял до конца (статьи на английском находил). Я правильно понял, что в текстовых файлах разделитель между полями при использовании «ADO» можно устанавливать только в двух местах:
Если это так, то, наверное, в моём случае не подходит использование «ADO», т.к. сложно всё получается. Мне нужно указать разделитель «;».
0 |
6076 / 1320 / 195 Регистрация: 12.12.2012 Сообщений: 1,023 |
|
07.11.2013, 17:42 |
4 |
Здравствуйте, Скрипт, Да, вы правы. Если нужно использовать особый разделитель, то необходимо либо изменить соответствующую запись в реестре, либо использовать файл schema.ini. По ссылке Excel, csv & Query вы можете найти мое решение этой проблемы. С уважением,
1 |
5468 / 1148 / 50 Регистрация: 15.09.2012 Сообщений: 3,514 |
|
07.11.2013, 18:26 [ТС] |
5 |
Aksima, я подробно не вчитывался в тему, ссылку на которую Вы дали в предыдущем сообщении (надо много времени потратить, прежде, чем осмыслить, что в той теме), но понял, что Вы используете текстовый файл, в котором есть информация о разделителе. Буду знать, что не всё так просто с «ADO» и текстовыми файлами. Aksima, не подскажите, в какой строке этого кода https://www.cyberforum.ru/post5065494.html указывается специальный текстовый файл с информацией о разделителях? Всматриваюсь и не могу найти.
0 |
Аксима 6076 / 1320 / 195 Регистрация: 12.12.2012 Сообщений: 1,023 |
||||
07.11.2013, 22:22 |
6 |
|||
Скрипт, указывать расположение данного файла не нужно. Однако необходимо, чтобы этот файл лежал в той же папке, что и csv-файл. Когда драйвер будет его обрабатывать, он самостоятельно проверит наличие в папке csv-файла файла схемы данных и если он есть — применит указанные в нем настройки. Если вы посмотрели далее в этой же теме еще один листинг, то наверняка обратили внимание на то, что при программном создании файла schema.ini я располагаю его в той же папке, где и csv-файл. Таким образом, указанное выше условие соблюдается.
С уважением,
1 |