Quick and surefire solutions to get rid of this error
by Ola-Hassan Bolaji
A Computer Engineering graduate, he has spent most of his life reading and writing about computers. He finds joy in simplifying complex topics into simple solutions for PC… read more
Updated on
- The runtime error 3706 is usually caused by issues with some of the details provided in your code.
- A simple yet effective solution to this problem is to update the Oracle client.
XINSTALL BY CLICKING THE DOWNLOAD FILE
Get rid of malfunctioning drivers on your PC
SPONSORED
Drivers can often become corrupt as they can interfere with malfunctioning system files, thus arriving to be installed but not running correctly. To keep your drivers running smoothly, your Windows OS must run even smoother. Get it in perfect shape by following the steps below:
- Download Fortect and install it on your PC.
- Start the tool’s scanning process to look for corrupt files that are the source of your problem
- Right-click on Start Repair so the tool can start the fixing algorithm
- Fortect has been downloaded by 0 readers this month, rated 4.4 on TrustPilot
The runtime error 3706 occurs when users try to run some codes using VBA. This frustrating error can be due to minor issues with your code when referencing a provider.
If you are also dealing with this issue, this guide will show you how to fix it, just like we did with the runtime error 438.
Why am I getting the runtime error 3706?
The major cause of this error is if some of the details in your code are incorrect. An example is if you provided the wrong OLEDB version in your code.
So, majorly, this error is usually down to minor issues with your code and can be fixed by making the little changes required.
How can I fix the runtime error 3706?
1. Ensure the details are correct
The only solution to this issue is to make sure the details provided in your code are correct and updated.
For example, you might need to confirm the version of your MS Office on which the script is running if you are using the latest versions of Microsoft Office.
What’s more, you might need to change the OLEDB version from 12.0 to 16.0 if you are using the latest versions of Excel, like 2019.
Another thing to note is that you need to make sure your Version, driver type, and Extended Properties are correct. An example is the code shown in the image below that gave this error as reported by a user on Stack Overflow:
The solution to this was just to change the Version to 12, the driver to ACE from Jet, the Extended Properties to Excel 12.0, and some other minor changes made to the code, as shown below:
So, these little parameters are important to eliminate this runtime error 3706.
- Error Authenticating With Venmo: 6 Ways to Fix it
- Fix: Internet Speed is Fast, but Video Calls are Slow
- Fix: Keyboard Shortcuts are Not Working in Excel
- Fix: MSI Afterburner Failed to Start Scanning
- Windows 11 Keeps Chiming? Stop it in 8 Steps
2. Use the latest version of Oracle
Sometimes, this runtime error 3706 can be due to an outdated Oracle client version. You need to check with your client to confirm the version and get the latest one available to prevent issues.
We can now conclude this guide on how to fix this runtime error for good on VBA. This issue is majorly down to minor issues with the details provided in your code.
Correcting these details accordingly should solve this effortlessly. If you are dealing with another issue like runtime error 3709, check our detailed guide to fix it.
Feel free to let us know in the comments below if you could solve this problem.
mrzv Пользователь Сообщений: 44 |
#1 31.08.2018 12:11:55 Здравствуйте, раньше не имел дела с подключением к БД. Прошу помочь.
но как настроить под свой лад не пойму. На счет Data Source=***;Password=***;User ID=*** все понятно |
||
ivanok_v2 Пользователь Сообщений: 712 |
Пример 1 ConnectionString для всех языков програмирования однаковая. |
mrzv Пользователь Сообщений: 44 |
#3 31.08.2018 13:01:35
Как тогда определить какой драйвер мне нужно использовать? |
||
Nordheim Пользователь Сообщений: 3154 |
Я подключаюсь так «Provider=msdaora» «Все гениальное просто, а все простое гениально!!!» |
sokol92 Пользователь Сообщений: 4445 |
#5 31.08.2018 13:14:12
Владимир |
||
mrzv Пользователь Сообщений: 44 |
#6 31.08.2018 13:17:35 Вот такую ошибку мне выдает на строке подключения
Run-time error 3706 Изменено: mrzv — 31.08.2018 13:20:59 |
||
sokol92 Пользователь Сообщений: 4445 |
Установите клиент Oracle в полном объеме. По умолчанию указанный выше драйвер может и не устанавливаться. Кроме того, учтите, что разрядности (32- или 64-) клиента Oracle и MS Office должны совпадать. |
sokol92 Пользователь Сообщений: 4445 |
Проверить доступность провайдера можно через Меню/Данные/Из других источников/Из мастера подключений/Дополнительно (путь дан для Excel 2016). Имя провайдера: Oracle Provider for OLE DB.Там же можно протестировать его работоспособность. Изменено: sokol92 — 31.08.2018 14:22:37 |
mrzv Пользователь Сообщений: 44 |
#9 31.08.2018 15:51:51 Спасибо за совет
Я создал подключение ODBC DNS посмотрел там строку подключения . Вставил её в свой код и все получилось. Только вот русские буквы вопросами…
|
||||
mrzv Пользователь Сообщений: 44 |
#10 31.08.2018 16:21:48 Вот такой код, я получаю нужную мне информацию, но кириллица вопросами. Что я делаю не так?
весь код взял из этой статьи https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=60251 |
||
sokol92 Пользователь Сообщений: 4445 |
Вы, похоже, подключили провайдер Microsoft, а не Oracle. Мы всегда работали с провайдером Oracle. |
mrzv Пользователь Сообщений: 44 |
#12 03.09.2018 15:29:03 И так с проблемой провайдера я разобрался http://www.oracle.com/technetwork/database/windows/downloads/index-090165.html скачивал вот этот файл:
В этом архиве есть нормальный setup Правильная строка подключения выглядит вот так:
что касается кодировки при использовании DSN вместо Provider, то мне так и не удалось разобраться. Но на мой взгляд способ подключения через Provider более правильный. Спасибо всем за помощь. Изменено: mrzv — 03.09.2018 15:30:00 |
|||||||
sokol92 Пользователь Сообщений: 4445 |
|
bedvit Пользователь Сообщений: 2477 Виталий |
#14 03.09.2018 23:46:15 Владимир, работаем тоже с родными драйверами Oracle. Microsoft не используем. «Бритва Оккама» или «Принцип Калашникова»? |
Скрипт 5468 / 1148 / 50 Регистрация: 15.09.2012 Сообщений: 3,514 |
||||
1 |
||||
07.11.2013, 15:06. Показов 14934. Ответов 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 |
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,3125 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
Опции темы |
ArtNeoX | |
Шустрый Профиль Репутация: нет |
Создал приложение. Оно работает только на компьютере где установлен vb6. Class not registered Run-time error ‘3706’ Открываю файл Project1.vbp в блокноте. Вот его содержание: —————————— [MS Transaction Server] ————————————— msado20.tlb и файлы которые просит при запуске Запускаю программу. Но опять таже ошибка. |
Akina | |||
Советчик Профиль
Репутация: 34 |
Это DAO.DBEngine 3.5. ——————— О(б)суждение моих действий — в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция — Администрация форума. |
||
ArtNeoX | |
Шустрый Профиль Репутация: нет |
как это сделать ? |
Akina | |
Советчик Профиль
Репутация: 34 |
Скачать последний MDAC с сайта M$ и установить. ——————— О(б)суждение моих действий — в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция — Администрация форума. |
Voldemar2004 | |
Эксперт Профиль Репутация: 7 |
Akina, может постоянную ссылку сделать на форуме на этот MDAC? В FAQ по VB 6. Уж очень часто люди сталкиваются с этой проблемой. Или скачать последнюю версию и положить на в FAQ. ——————— i_i |
Exception | |
Эксперт Профиль Репутация: 7 |
В шапке форума может? Типа |
ArtNeoX | |
Шустрый Профиль Репутация: нет |
Скачать последний MDAC с сайта M$ и установить. Microsoft Data Access Components (MDAC)2.8 RU Microsoft Data Access Components (MDAC)2.8 ENGL |
ArtNeoX | |
Шустрый Профиль Репутация: нет |
скачал. на win xp sp2 не устанавливается, пишет что типа это уже установлено с виндовс. что делать? |
Voldemar2004 | |||
Эксперт Профиль Репутация: 7 |
Я решил эту проблему с помощью C++ Builder от Borland. ——————— i_i |
||
Akina | |
Советчик Профиль
Репутация: 34 |
Последний — Microsoft Data Access Components 2.8 SP 1. И вообще — найти его на download.microsoft.com не составляет труда. ——————— О(б)суждение моих действий — в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция — Администрация форума. |
ArtNeoX | |
Шустрый Профиль Репутация: нет |
Ну объясните же наконец как сделать, либо дайте ссылку на литературу по этому вопросу, если сами не знаете как или лень писать сдесь. |
Exception | |||
Эксперт Профиль Репутация: 7 |
Тебе непонятно сказали? Скачай MDAC 2.8 SP 1, установи. Это сообщение отредактировал(а) Exception — 29.1.2006, 17:07 |
||
ArtNeoX | |
Шустрый Профиль Репутация: нет |
Скачал, установил. Все осталось без изменений. |
Exception | |
Эксперт Профиль Репутация: 7 |
У меня тоже так бажило. Решил переустановкой системы и сносом офиса. |
ArtNeoX | |
Шустрый Профиль Репутация: нет |
Есть ли какой либо инстолятор, который сам выбирает что нужно устанавливать? |
cardinal | |
Инженер Профиль
Репутация: 19 |
А это что? ——————— Немецкая оппозиция потребовала упростить натурализацию иммигрантов «Познание бесконечности требует бесконечного времени, а потому работай не работай — все едино». А. и Б. Стругацкие |
ArtNeoX | |
Шустрый Профиль Репутация: нет |
У меня в References проекта выбраны: После установки Microsoft Data Access Components (MDAC)2.8 RU нужно ли что то подключать в проекте в References ? этой вот nsis можно сделать что бы исчезла ошибка Class not registered Run-time error ‘3706’ при создании инстолятора способом описанным в ссылке http://forum.vingrad.ru/index.php?showtopic=57092 |
ArtNeoX | |
Шустрый Профиль Репутация: нет |
сделал reg файл с таким содержанием REGEDIT4 [HKEY_CLASSES_ROOTDAO.DBEngine.35] @=»Microsoft DAO 3.51 Object Library DBEngine» кинул в папку c:TEMPDAO350.DLL Запустил reg файл. Потом программу. и Run-time error ‘3706’ |
ArtNeoX | |
Шустрый Профиль Репутация: нет |
как пользоваться resvr32.exe |
ArtNeoX | |
Шустрый Профиль Репутация: нет |
Как перенести программу использующую Microsoft DAO 3.51 Object Library на другой компьютер я разобрался. |
Exception | |||||
Эксперт Профиль Репутация: 7 |
Дык вроде бы только этот.
regsvr32.exe путь_к_твоей_длл_или_ocx |
||||
ArtNeoX | |
Шустрый Профиль Репутация: нет |
при запуске программы использующей datagreed Run-time error ‘3706’ что это за ошибка? |
ArtNeoX | |
Шустрый Профиль Репутация: нет |
Установка MDAC 2.8 не помогает. оишибка Run-time error ‘3706’ Не удается найти указанного поставщика. Вероятно, он установлен неправильно. regsvr32.exe msado20.tlb не работает. Пишет что надо или dll или OCX оишибка Run-time error ‘3706’ Не удается найти указанного поставщика. Вероятно, он установлен неправильно. regsvr32.exe msado20.tlb не работает. Пишет что надо или dll или OCX |
Exception | |||
Эксперт Профиль Репутация: 7 |
Установи там последний MDAC. |
||
ArtNeoX | |
Шустрый Профиль Репутация: нет |
Да, установил я его — ни-фи-га… |
kulibin | |||||
Бывалый Профиль
Репутация: 2 |
Господи! Кто тебе это сказал? Или сам догадался?
файлик: Msdatgrd.ocx — что это по твоему? Вобчем тебе датагрид надо зарегистрировать(Msdatgrd.ocx). Токо боюсь что это не всё. |
||||
ArtNeoX | |
Шустрый Профиль Репутация: нет |
kulibin, спасибо за исчерпывающий ответ. Но я уже разобрался. Запустил bat файл на выполнение для регистрации файлов. |
kulibin | |
Бывалый Профиль
Репутация: 2 |
Ну поздравляю |
ArtNeoX | |
Шустрый Профиль Репутация: нет |
кинь ссылочку. |
Exception | |
Эксперт Профиль Репутация: 7 |
Погугли «CreateInstall» — отличная вещь. |
kulibin | |
Бывалый Профиль
Репутация: 2 |
Inno Setup Compiller |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »
Я увидел, что эта ошибка не нова, но не могу найти решение.
У меня есть один файл xls, который использует один лист, например, как db, и с ADODB я получаю нужные мне наборы записей.
Код очень прост и работает правильно для каждого ПК (5), который я тестировал, с WIN7, WIN10, 32 или 64 бит.
Но у меня ПК, это клиентский ПК, и я получаю эту ошибку: Run time error '3706': Provider cannot be found
, Я проверил версию WIN, офисную версию, они такие же, как и другие ПК, WIN10 64 Bit, MS Office 32Bit
Чтобы решить эту проблему, мне нужно больше контроля?!?! спасибо за любые предложения fabrizio
В моем xls-файле 2 листа, 1-й с именем «dati» с двумя столбцами (Anno, Pezzi), 2-й с именем «test» пуст, это код:
Sub testConn()
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim strsql As String
Const adOpenStatic = 3
Const adLockOptimistic = 3
Const adCmdText = &H1
Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
Set rs = New ADODB.Recordset
#If Win64 Then
cn.Open "Provider=Microsoft.Jet.OLEDB.12.0; Data Source=" & ThisWorkbook.FullName & "; Extended Properties=""Excel 8.0;HDR=Yes;"";"
#Else
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & ThisWorkbook.FullName & "; Extended Properties=""Excel 8.0;HDR=Yes;"";"
#End If
strsql = "SELECT anno, Sum(Pezzi)as Tpz from [dati$] group by anno"
rs.Open strsql, cn, adOpenStatic, adLockReadOnly, adCmdUnspecified
rs.MoveFirst
With Worksheets("test")
.Cells.ClearContents
.Range("A1") = "Anno"
.Range("B1") = "T.Pz"
.Range("A2").CopyFromRecordset rs
.Activate
.Select
End With
End Sub
Эти ссылки были добавлены в файл:
Microsoft ActiveX Data Objects 6.1 Library
Microsoft ActiveX Data Recordset 2.8 Library
1 ответ
Лучший ответ
Это работает, есть некоторые мелкие детали, которые вам не подходят. Версия 12, драйвер — ace, а не jet, а расширенные свойства — также Excel 12.0.
И не нужно добавлять библиотеку.
Sub testConn()
Dim cn As Object
Dim rs As Object
Dim strsql As String
Dim connString
Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
If Application.Version < 12 Then
connString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & ThisWorkbook.FullName & "; Extended Properties=""Excel 8.0;HDR=Yes;"";"
Else
connString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & ThisWorkbook.FullName & "; Extended Properties=""Excel 12.0;HDR=Yes;"";"
End If
cn.Open connString
strsql = "SELECT anno, Sum(Pezzi) as Tpz from [dati$] group by anno"
Set rs = cn.Execute(strsql)
With Worksheets("test")
.Cells.ClearContents
.Range("A1") = "Anno"
.Range("B1") = "T.Pz"
.Range("A2").CopyFromRecordset rs
.Activate
.Select
End With
End Sub
1
Anabas
9 Апр 2020 в 12:35
I saw that this error isn’t new, but I can’t find the solution.
I have one xls file that use one sheet like as db and with ADODB i get the recordsets that I need.
The code is Very simple and work right for each pc(5) that I tested, with WIN7, WIN10, 32 or 64 bit.
But I’ve on PC, it’s customer Pc, that get me this error: Run time error '3706': Provider cannot be found
,
I has checked the WIN version, the office version, they are the same like other PC, WIN10 64 Bit, MS Office 32Bit
There are more control that I’ve to do to resolve this problem?!?!
thanks for any suggestions
fabrizio
My xls file have 2 sheet, 1th named «dati» with two columns (Anno, Pezzi), 2th named «test» empty, this is the code:
Sub testConn()
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim strsql As String
Const adOpenStatic = 3
Const adLockOptimistic = 3
Const adCmdText = &H1
Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
Set rs = New ADODB.Recordset
#If Win64 Then
cn.Open "Provider=Microsoft.Jet.OLEDB.12.0; Data Source=" & ThisWorkbook.FullName & "; Extended Properties=""Excel 8.0;HDR=Yes;"";"
#Else
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & ThisWorkbook.FullName & "; Extended Properties=""Excel 8.0;HDR=Yes;"";"
#End If
strsql = "SELECT anno, Sum(Pezzi)as Tpz from [dati$] group by anno"
rs.Open strsql, cn, adOpenStatic, adLockReadOnly, adCmdUnspecified
rs.MoveFirst
With Worksheets("test")
.Cells.ClearContents
.Range("A1") = "Anno"
.Range("B1") = "T.Pz"
.Range("A2").CopyFromRecordset rs
.Activate
.Select
End With
End Sub
these references was added into file:
Microsoft ActiveX Data Objects 6.1 Library
Microsoft ActiveX Data Recordset 2.8 Library
#excel #vba #adodb
Вопрос:
Я написал следующее, чтобы подключиться к базе данных Oracle с помощью ODBC. Ссылки включают библиотеку Microsoft ActiveX Data Objects 2.8
Sub testDB()
' Database connections.
Dim ExcelDB As New ADODB.Connection
Dim ExcelRS As New ADODB.Recordset
Dim ExcelSQL As New ADODB.Command
ExcelSQL.CommandText = "SELECT item from item_master"
ExcelDB.ConnectionString = "Provider=MSDAORA; Data Source=Garcia; User ID=RMS; Password=XXX"
ExcelRS.Open ExcelSQL.CommandText, ExcelDB.ConnectionString, 2, 4
End Sub
Комментарии:
1. Этот драйвер не установлен на вашем компьютере или установлен неправильно. Или 32/64-разрядная версия драйвера не соответствует 32/64-разрядной версии Excel, которую вы используете.
2. Драйвер установлен и работает правильно, так как я могу сделать точно то же самое из меню данных, используя getData —>Из других источников ->> FromODBC ->>> DSN = Гарсия
3. Я не знаю, имеет ли значение 32/64 бит для getData, но это определенно имеет значение при использовании ADO. Можете ли вы подтвердить, что установленный драйвер соответствует установленной версии Office с точки зрения 32/64-разрядной версии?
4. Я проверил, и MS Office 64-разрядный, а драйвер 64-разрядный. Спасибо. Я думаю, что проблема может быть в параметре поставщика ExcelDB.ConnectionString = «Поставщик=MSDAORA;Источник данных=Гарсия;Идентификатор пользователя=RMS; Пароль=xxx» Я также загрузил драйвер OLE, и соединение работает, но я не знаю кода поставщика для этого
5. connectionstrings.com/oracle-provider-for-ole-db-oraoledb первый из них должен сработать. Вы проверили установку клиента Oracle с помощью (например) TNSPing из командной строки?
Скрипт 5471 / 1149 / 50 Регистрация: 15.09.2012 Сообщений: 3,515 |
||||
1 |
||||
07.11.2013, 15:06. Показов 15476. Ответов 5 Метки нет (Все метки)
Скажите, пожалуйста, какая ошибка в макросе. Макрос
Вообще задача следующая: нужно из Excel получить доступ к CSV-файлу, чтобы работать с CSV-файлом не в программе «Excel», а как с базой данных. Так по идее правильнее будет. Ещё хотелось бы пользоваться одним поставщиком (а не несколькими) в разных версиях «MS Office». Примечание Поставщик (имеет ещё название «провайдер») — это программа, которая подключается к базе данных. База данных в данной теме — это CSV-файл. Поставщик в данной теме «Microsoft Text ODBC Driver» (в макросе поставщик записан «{Microsoft Text Driver (*.txt; *.csv)}».
0 |
Аксима 6078 / 1322 / 195 Регистрация: 12.12.2012 Сообщений: 1,023 |
||||
07.11.2013, 16:28 |
2 |
|||
Есть несколько замечаний по вашей строке подключения:
На моей машине из числа ODBC поставщиков есть поставщик MSDASQL, а исправленная программа выглядит так: ODBC подключение к текстовому файлу
С уважением,
1 |
5471 / 1149 / 50 Регистрация: 15.09.2012 Сообщений: 3,515 |
|
07.11.2013, 17:25 [ТС] |
3 |
Aksima, строку подключения я смотрел на специальном сайте (http://www.connectionstrings.com/textfile/), но название параметра не заметил. Сделал вместо слова «Provider» слово «Driver» и заработало. Aksima, сейчас посмотрел в интернете, но не понял до конца (статьи на английском находил). Я правильно понял, что в текстовых файлах разделитель между полями при использовании «ADO» можно устанавливать только в двух местах:
Если это так, то, наверное, в моём случае не подходит использование «ADO», т.к. сложно всё получается. Мне нужно указать разделитель «;».
0 |
6078 / 1322 / 195 Регистрация: 12.12.2012 Сообщений: 1,023 |
|
07.11.2013, 17:42 |
4 |
Здравствуйте, Скрипт, Да, вы правы. Если нужно использовать особый разделитель, то необходимо либо изменить соответствующую запись в реестре, либо использовать файл schema.ini. По ссылке Excel, csv & Query вы можете найти мое решение этой проблемы. С уважением,
1 |
5471 / 1149 / 50 Регистрация: 15.09.2012 Сообщений: 3,515 |
|
07.11.2013, 18:26 [ТС] |
5 |
Aksima, я подробно не вчитывался в тему, ссылку на которую Вы дали в предыдущем сообщении (надо много времени потратить, прежде, чем осмыслить, что в той теме), но понял, что Вы используете текстовый файл, в котором есть информация о разделителе. Буду знать, что не всё так просто с «ADO» и текстовыми файлами. Aksima, не подскажите, в какой строке этого кода https://www.cyberforum.ru/post5065494.html указывается специальный текстовый файл с информацией о разделителях? Всматриваюсь и не могу найти.
0 |
Аксима 6078 / 1322 / 195 Регистрация: 12.12.2012 Сообщений: 1,023 |
||||
07.11.2013, 22:22 |
6 |
|||
Скрипт, указывать расположение данного файла не нужно. Однако необходимо, чтобы этот файл лежал в той же папке, что и csv-файл. Когда драйвер будет его обрабатывать, он самостоятельно проверит наличие в папке csv-файла файла схемы данных и если он есть — применит указанные в нем настройки. Если вы посмотрели далее в этой же теме еще один листинг, то наверняка обратили внимание на то, что при программном создании файла schema.ini я располагаю его в той же папке, где и csv-файл. Таким образом, указанное выше условие соблюдается.
С уважением,
1 |
Опции темы |
ArtNeoX |
|
||
Шустрый Профиль Репутация: нет
|
Создал приложение. Оно работает только на компьютере где установлен vb6. Class not registered Run-time error ‘3706’ Открываю файл Project1.vbp в блокноте. Вот его содержание: —————————— [MS Transaction Server] ————————————— msado20.tlb и файлы которые просит при запуске Запускаю программу. Но опять таже ошибка. |
||
|
|||
Akina |
|
||
Советчик Профиль
Репутация: 34
|
Это DAO.DBEngine 3.5. ——————— О(б)суждение моих действий — в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция — Администрация форума. |
||
|
|||
ArtNeoX |
|
||
Шустрый Профиль Репутация: нет
|
как это сделать ? |
||
|
|||
Akina |
|
||
Советчик Профиль
Репутация: 34
|
Скачать последний MDAC с сайта M$ и установить. ——————— О(б)суждение моих действий — в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция — Администрация форума. |
||
|
|||
Voldemar2004 |
|
||
Эксперт Профиль Репутация: 7
|
Akina, может постоянную ссылку сделать на форуме на этот MDAC? В FAQ по VB 6. Уж очень часто люди сталкиваются с этой проблемой. Или скачать последнюю версию и положить на в FAQ. ——————— i_i |
||
|
|||
Exception |
|
||
Эксперт Профиль Репутация: 7
|
В шапке форума может? Типа |
||
|
|||
ArtNeoX |
|
||
Шустрый Профиль Репутация: нет
|
Скачать последний MDAC с сайта M$ и установить. Microsoft Data Access Components (MDAC)2.8 RU Microsoft Data Access Components (MDAC)2.8 ENGL |
||
|
|||
ArtNeoX |
|
||
Шустрый Профиль Репутация: нет
|
скачал. на win xp sp2 не устанавливается, пишет что типа это уже установлено с виндовс. что делать? |
||
|
|||
Voldemar2004 |
|
||
Эксперт Профиль Репутация: 7
|
Я решил эту проблему с помощью C++ Builder от Borland. ——————— i_i |
||
|
|||
Akina |
|
||
Советчик Профиль
Репутация: 34
|
Последний — Microsoft Data Access Components 2.8 SP 1. И вообще — найти его на download.microsoft.com не составляет труда. ——————— О(б)суждение моих действий — в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция — Администрация форума. |
||
|
|||
ArtNeoX |
|
||
Шустрый Профиль Репутация: нет
|
Ну объясните же наконец как сделать, либо дайте ссылку на литературу по этому вопросу, если сами не знаете как или лень писать сдесь. |
||
|
|||
Exception |
|
||
Эксперт Профиль Репутация: 7
|
Тебе непонятно сказали? Скачай MDAC 2.8 SP 1, установи. Это сообщение отредактировал(а) Exception — 29.1.2006, 17:07 |
||
|
|||
ArtNeoX |
|
||
Шустрый Профиль Репутация: нет
|
Скачал, установил. Все осталось без изменений. |
||
|
|||
Exception |
|
||
Эксперт Профиль Репутация: 7
|
У меня тоже так бажило. Решил переустановкой системы и сносом офиса. |
||
|
|||
ArtNeoX |
|
||
Шустрый Профиль Репутация: нет
|
Есть ли какой либо инстолятор, который сам выбирает что нужно устанавливать? |
||
|
|||
cardinal |
|
||
Инженер Профиль
Репутация: 19
|
А это что? ——————— Немецкая оппозиция потребовала упростить натурализацию иммигрантов «Познание бесконечности требует бесконечного времени, а потому работай не работай — все едино». А. и Б. Стругацкие |
||
|
|||
ArtNeoX |
|
||
Шустрый Профиль Репутация: нет
|
У меня в References проекта выбраны: После установки Microsoft Data Access Components (MDAC)2.8 RU нужно ли что то подключать в проекте в References ? этой вот nsis можно сделать что бы исчезла ошибка Class not registered Run-time error ‘3706’ при создании инстолятора способом описанным в ссылке http://forum.vingrad.ru/index.php?showtopic=57092 |
||
|
|||
ArtNeoX |
|
||
Шустрый Профиль Репутация: нет
|
сделал reg файл с таким содержанием REGEDIT4 [HKEY_CLASSES_ROOT\DAO.DBEngine.35] @=»Microsoft DAO 3.51 Object Library DBEngine» кинул в папку c:\TEMP\DAO350.DLL Запустил reg файл. Потом программу. и Run-time error ‘3706’ |
||
|
|||
ArtNeoX |
|
||
Шустрый Профиль Репутация: нет
|
как пользоваться resvr32.exe |
||
|
|||
ArtNeoX |
|
||
Шустрый Профиль Репутация: нет
|
Как перенести программу использующую Microsoft DAO 3.51 Object Library на другой компьютер я разобрался. |
||
|
|||
Exception |
|
||||
Эксперт Профиль Репутация: 7
|
Дык вроде бы только этот.
regsvr32.exe путь_к_твоей_длл_или_ocx |
||||
|
|||||
ArtNeoX |
|
||
Шустрый Профиль Репутация: нет
|
при запуске программы использующей datagreed Run-time error ‘3706’ что это за ошибка? |
||
|
|||
ArtNeoX |
|
||
Шустрый Профиль Репутация: нет
|
Установка MDAC 2.8 не помогает. оишибка Run-time error ‘3706’ Не удается найти указанного поставщика. Вероятно, он установлен неправильно. regsvr32.exe msado20.tlb не работает. Пишет что надо или dll или OCX оишибка Run-time error ‘3706’ Не удается найти указанного поставщика. Вероятно, он установлен неправильно. regsvr32.exe msado20.tlb не работает. Пишет что надо или dll или OCX |
||
|
|||
Exception |
|
||
Эксперт Профиль Репутация: 7
|
Установи там последний MDAC. |
||
|
|||
ArtNeoX |
|
||
Шустрый Профиль Репутация: нет
|
Да, установил я его — ни-фи-га… |
||
|
|||
kulibin |
|
||||
Бывалый Профиль
Репутация: 2
|
Господи! Кто тебе это сказал? Или сам догадался?
файлик: Msdatgrd.ocx — что это по твоему? Вобчем тебе датагрид надо зарегистрировать(Msdatgrd.ocx). Токо боюсь что это не всё. |
||||
|
|||||
ArtNeoX |
|
||
Шустрый Профиль Репутация: нет
|
kulibin, спасибо за исчерпывающий ответ. Но я уже разобрался. Запустил bat файл на выполнение для регистрации файлов. |
||
|
|||
kulibin |
|
||
Бывалый Профиль
Репутация: 2
|
Ну поздравляю |
||
|
|||
ArtNeoX |
|
||
Шустрый Профиль Репутация: нет
|
кинь ссылочку. |
||
|
|||
Exception |
|
||
Эксперт Профиль Репутация: 7
|
Погугли «CreateInstall» — отличная вещь. |
||
|
|||
kulibin |
|
||
Бывалый Профиль
Репутация: 2
|
Inno Setup Compiller |
||
|
|||
Пользовательское соглашение
Политика конфиденциальности
© Николай Павлов, Planetaexcel, 2006-2023
info@planetaexcel.ru
Использование любых материалов сайта допускается строго с указанием прямой ссылки на источник, упоминанием названия сайта, имени автора и неизменности исходного текста и иллюстраций.
Техническая поддержка сайта
ООО «Планета Эксел» ИНН 7735603520 ОГРН 1147746834949 |
ИП Павлов Николай Владимирович ИНН 633015842586 ОГРНИП 310633031600071 |