Ошибка 3706 не удается найти указанный поставщик

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. 

runtime error 3706

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:

  1. Download Fortect and install it on your PC.
  2. Start the tool’s scanning process to look for corrupt files that are the source of your problem
  3. 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:

mistake runtime error 3706

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:

correction

So, these little parameters are important to eliminate this runtime error 3706.

Read more about this topic

  • 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.

newsletter icon

 

mrzv

Пользователь

Сообщений: 44
Регистрация: 27.07.2015

#1

31.08.2018 12:11:55

Здравствуйте, раньше не имел дела с подключением к БД. Прошу помочь.
На просторах нашего форума нашел вот такую строку подключения

Код
Set cn = CreateObject("ADODB.Connection")
       cn.Open "Provider=MSDAORA.1;Data Source=***;Password=***;User ID=***"

но как настроить под свой лад не пойму. На счет Data Source=***;Password=***;User ID=*** все понятно
А вот Provider какой нужно использовать?
Я установил драйвер с сайта oracl «Oracle in instantclient_18_3» имя его «SQORA32.DLL».  

 

ivanok_v2

Пользователь

Сообщений: 712
Регистрация: 19.08.2018

Пример 1

ConnectionString для всех языков програмирования однаковая.
если вы подключаетсь через другое ПО,  значить нужные драйвера уже есть.

 

mrzv

Пользователь

Сообщений: 44
Регистрация: 27.07.2015

#3

31.08.2018 13:01:35

Цитата
ivanok_v2 написал:
если вы подключаетсь через другое ПО,  значить нужные драйвера уже есть.

Как тогда определить какой драйвер мне нужно использовать?

 

Nordheim

Пользователь

Сообщений: 3154
Регистрация: 18.04.2017

Я подключаюсь так «Provider=msdaora»

«Все гениальное просто, а все простое гениально!!!»

 

sokol92

Пользователь

Сообщений: 4445
Регистрация: 10.09.2017

#5

31.08.2018 13:14:12

Код
Provider=ORAOLEDB.ORACLE

Владимир

 

mrzv

Пользователь

Сообщений: 44
Регистрация: 27.07.2015

#6

31.08.2018 13:17:35

Вот такую ошибку мне выдает на строке подключения

Код
Set cn = CreateObject("ADODB.Connection")
       cn.Open "Provider=ORAOLEDB.ORACLE;Data Source=192.168.200.253:1521/xe;Password=org;User ID=pqw2"

Run-time error 3706
Не удается найти указанный поставщик.Вероятно, он установлен неправильно.

Изменено: mrzv31.08.2018 13:20:59

 

sokol92

Пользователь

Сообщений: 4445
Регистрация: 10.09.2017

Установите клиент Oracle в полном объеме. По умолчанию указанный выше драйвер может и не устанавливаться. Кроме того, учтите, что разрядности (32- или 64-) клиента Oracle и MS Office должны совпадать.

 

sokol92

Пользователь

Сообщений: 4445
Регистрация: 10.09.2017

Проверить доступность провайдера можно через Меню/Данные/Из других источников/Из мастера подключений/Дополнительно (путь дан для Excel 2016). Имя провайдера: Oracle Provider for OLE DB.Там же можно протестировать его работоспособность.

Изменено: sokol9231.08.2018 14:22:37

 

mrzv

Пользователь

Сообщений: 44
Регистрация: 27.07.2015

#9

31.08.2018 15:51:51

Спасибо за совет

Цитата
sokol92 написал:
через Меню/Данные/Из других источников/Из мастера подключений/Дополнительно (путь дан для Excel 2016)

Я создал подключение ODBC DNS посмотрел там строку подключения . Вставил её в свой код и все получилось. Только вот русские буквы вопросами…

Код
cn.Open "ODBC;DBQ=192.168.200.253:1521/XE;UID=orga;PWD=a546;DSN=ALGO"
 

mrzv

Пользователь

Сообщений: 44
Регистрация: 27.07.2015

#10

31.08.2018 16:21:48

Вот такой код, я получаю нужную мне информацию, но кириллица вопросами. Что я делаю не так?

Код
Sub ImpOracle()
Set cn = CreateObject("ADODB.Connection")
       cn.Open "ODBC;DBQ=192.168.200.253:1521/XE;UID=orga;PWD=a546;DSN=ALGO"
'========================================================================================
sSql = "select partner_short_name, trunc(OUTCOME_DATE_SALE) d, sum(roh.sum_w_nds) s,count(1) h from t_partner p, T_REMOTE_ROZNICA_OUTCOME_HEAD roh where ROH.REMOTE_PARTNER_ID = p.PARTNER_ID and trunc(OUTCOME_DATE_SALE) between sysdate - 3 and sysdate group by partner_short_name, trunc(OUTCOME_DATE_SALE)"

Set Rs = GetRs(sSql, cn)
Sheets("Лист1").[a1].CopyFromRecordset Rs
Rs.Close
Set Rs = Nothing
End Sub

Function GetRs(sstr, cn)
Set rstdata = CreateObject("ADODB.Recordset")
    rstdata.Open sstr, cn
    Set GetRs = rstdata
Set rstdata = Nothing
End Function

весь код взял из этой статьи https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=60251

 

sokol92

Пользователь

Сообщений: 4445
Регистрация: 10.09.2017

Вы, похоже, подключили провайдер Microsoft, а не Oracle. Мы всегда работали с провайдером Oracle.

 

mrzv

Пользователь

Сообщений: 44
Регистрация: 27.07.2015

#12

03.09.2018 15:29:03

И так с проблемой провайдера я разобрался
Криво стояли драйвера oracle
Последний раз когда я их устанавливал я качал их вот отсюда

http://www.oracle.com/technetwork/database/windows/downloads/index-090165.html

скачивал вот этот файл:
64-bit ODAC 12.2c Release 1 (12.2.0.1.1) for Windows x64
[Released August 3, 2018]

ODAC122011_x64.zip — 406 MB (426,617,132 bytes)

В этом архиве есть нормальный setup

Правильная строка подключения выглядит вот так:

Код
Set cn = CreateObject("ADODB.Connection")
cn.Open "Provider=OraOLEDB.Oracle;Data Source=192.168.200.253:1521/XE;User ID=***;Password=***"

что касается кодировки при использовании DSN вместо Provider, то мне так и не удалось разобраться. Но на мой взгляд способ подключения через Provider более правильный.

Спасибо всем за помощь.

Изменено: mrzv03.09.2018 15:30:00

 

sokol92

Пользователь

Сообщений: 4445
Регистрация: 10.09.2017

 

bedvit

Пользователь

Сообщений: 2477
Регистрация: 02.04.2015

Виталий

#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

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Скажите, пожалуйста, какая ошибка в макросе.
Ошибка возникает в строке 20. Полный текст ошибки: Run-time Error ‘3706’ Не удается найти указанный поставщик. Возможно, он установлен неправильно.

Макрос

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Sub Procedure_1()
    
    'Путь к папке, где содержатся текстовые файлы.
    Const myFolderPath As String = "C:UsersUserDesktop;"
        
    'Библиотека "Microsoft ActiveX Data Objects версия Library".
    Dim myConnection As ADODB.Connection
    
    
    'Создание объекта "Connection".
    Set myConnection = CreateObject(Class:="ADODB.Connection")
    
    'Указываем, какой провайдер нужно использовать, адрес базы данных,
        'дополнительные параметры.
    myConnection.ConnectionString = _
        "Provider={Microsoft Text Driver (*.txt; *.csv)};DBQ=" & myFolderPath & _
        "Extensions=asc,csv,tab,txt"
 
    'Подключение к базе данных.
    myConnection.Open
    
End Sub

Вообще задача следующая: нужно из Excel получить доступ к CSV-файлу, чтобы работать с CSV-файлом не в программе «Excel», а как с базой данных. Так по идее правильнее будет.

Ещё хотелось бы пользоваться одним поставщиком (а не несколькими) в разных версиях «MS Office».

Примечание

Поставщик (имеет ещё название «провайдер») — это программа, которая подключается к базе данных. База данных в данной теме — это CSV-файл. Поставщик в данной теме «Microsoft Text ODBC Driver» (в макросе поставщик записан «{Microsoft Text Driver (*.txt; *.csv)}».
Библиотека «ADO» подключается к поставщику.
Макрос подключается к библиотеке «ADO».

0

Аксима

6076 / 1320 / 195

Регистрация: 12.12.2012

Сообщений: 1,023

07.11.2013, 16:28

2

Здравствуйте, Скрипт,

Есть несколько замечаний по вашей строке подключения:

  1. Рассмотрим часть вашей строки подключения «Provider={Microsoft Text Driver (*.txt; *.csv)}…». Название параметра здесь не Provider, а Driver. Смотрите официальную статью Microsoft, раздел «Строки подключения ODBC».
  2. После замены названия параметра мы обнаружим, что в вашей строке подключения не указан поставщик (Provider). Нужно его указать.

На моей машине из числа ODBC поставщиков есть поставщик MSDASQL, а исправленная программа выглядит так:

ODBC подключение к текстовому файлу

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
Sub Procedure_1()
 
    Const Q As String = """"
    
    'Ïóòü ê ïàïêå, ãäå ñîäåðæàòñÿ òåêñòîâûå ôàéëû.
    Const myFolderPath As String = "C:UsersUserDesktop"
    
    'Èìÿ òåêñòîâîãî ôàéëà.
    Const myDatabaseFile As String = "test.csv"
    
    'Îáúÿâëÿåì ïåðåìåííûå îáúåêòíîãî òèïà (èñïîëüçóåì ïîçäíåå ñâÿçûâàíèå).
    Dim myConnection As Object
    Dim myRecordset As Object
 
    'Ñîçäàåì îáúåêò "Connection".
    Set myConnection = CreateObject(Class:="ADODB.Connection")
    
    'Óêàçûâàåì, êàêîé ïðîâàéäåð íóæíî èñïîëüçîâàòü, àäðåñ áàçû äàííûõ,
        'äîïîëíèòåëüíûå ïàðàìåòðû.
    myConnection.ConnectionString = _
        "Provider=MSDASQL.1;" & _
        "Extended Properties=" & _
        Q & _
            "Driver={Microsoft Access Text Driver (*.txt, *.csv)};" & _
            "DBQ=" & myFolderPath & ";" & _
            "Extensions=txt,csv,tab,asc;" & _
            "FileDSN=" & myFolderPath & "" & myDatabaseFile & ".dsn" & _
        Q
 
    'Ïîäêëþ÷àåìñÿ ê áàçå äàííûõ.
    myConnection.Open
    
    'Ñîçäàåì îáúåêò "Recordset".
    Set myRecordset = CreateObject(Class:="ADODB.Recordset")
    
    'Óêàçûâàåì ñîåäèíåíèå, èñïîëüçóåìîå îáúåêòîì "Recordset".
    myRecordset.ActiveConnection = myConnection
    
    'Âûïîëíÿåì çàïðîñ ê áàçå äàííûõ.
    myRecordset.Open "SELECT * FROM " & myDatabaseFile
    
    'Òåñòèðóåì ðåçóëüòàò çàïðîñà.
    With myRecordset.Fields(0)
        Debug.Print "Ïåðâîå çíà÷åíèå ïîëÿ " & Q & .Name & Q & " ðàâíî " & .Value
    End With
    
    'Çàêðûâàåì íàáîð çàïèñåé.
    myRecordset.Close
    
    'Îñâîáîæäàåì ñîåäèíåíèå.
    myConnection.Close
    
End Sub

С уважением,

Aksima

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» можно устанавливать только в двух местах:

  1. Windows-реестр;
  2. нужно создать текстовый файл и поместить его в специальное место. Из этого текстового файла макрос будет брать разделитель.

Если это так, то, наверное, в моём случае не подходит использование «ADO», т.к. сложно всё получается.

Мне нужно указать разделитель «;».

0

6076 / 1320 / 195

Регистрация: 12.12.2012

Сообщений: 1,023

07.11.2013, 17:42

4

Здравствуйте, Скрипт,

Да, вы правы. Если нужно использовать особый разделитель, то необходимо либо изменить соответствующую запись в реестре, либо использовать файл schema.ini.

По ссылке Excel, csv & Query вы можете найти мое решение этой проблемы.

С уважением,

Aksima

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-файл. Таким образом, указанное выше условие соблюдается.

Visual Basic
1
2
3
4
5
6
7
p = Application.GetOpenFilename("CSV data logs,*.csv", , _
    "Укажите расположение csv-файла", , False)
' ...
p = Left(p, InStrRev(p, "")) 'Путь к папке csv-файла.
' ...
Open p & "schema.ini" For Output As #1
' ...

С уважением,

Aksima

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

JustinJDavies's user avatar

asked Nov 29, 2013 at 5:18

Kentot's user avatar

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

jacouh's user avatar

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

Sheng Huang's user avatar

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's user avatar

msanford

11.6k10 gold badges67 silver badges92 bronze badges

answered Aug 16, 2017 at 18:58

Luis's user avatar

> Помогите убрать ошибку, не пойму как это сделать 

:(

Опции темы

ArtNeoX

Шустрый
*

Профиль
Группа: Участник
Сообщений: 125
Регистрация: 23.10.2005

Репутация: нет
Всего: нет

Создал приложение. Оно работает только на компьютере где установлен vb6.
При переносе на другой компьютер, при запуске программы возникают следующие ошибки:

Class not registered
Looking for object with CLSID :{00000010-0000-0010-8000-00AA006D2EA4}

Run-time error ‘3706’
Не удается найти указанного поставщика. Вероятно, он установлен неправильно.

Открываю файл Project1.vbp в блокноте. Вот его содержание:

——————————
Type=Exe
Reference=*G{00020430-0000-0000-C000-000000000046}#2.0#0#……WINDOWSSystem32stdole2.tlb#OLE Automation
Reference=*G{00000200-0000-0010-8000-00AA006D2EA4}#2.0#0#……Program FilesCommon Filessystemadomsado20.tlb#Microsoft ActiveX Data Objects 2.0 Library
Reference=*G{00020813-0000-0000-C000-000000000046}#1.5#0#……Program FilesMicrosoft OfficeOFFICE11EXCEL.EXE#Microsoft Excel 11.0 Object Library
Object={F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0; COMDLG32.OCX
Object={831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0; MSCOMCTL.OCX
Object={CDE57A40-8B86-11D0-B3C6-00A0C90AEA82}#1.0#0; MSDATGRD.OCX
Form=Form1.frm
Form=frmMain.frm
Form=frmDocument.frm
Form=frmTabl1.frm
Module=Module1; Module1.bas
Form=frmCheck1.frm
Form=Form3.frm
Form=Form2.frm
Form=Form4.frm
Reference=*G{6B263850-900B-11D0-9484-00A0C91110ED}#1.0#0#……WINDOWSSystem32MSSTDFMT.DLL#Microsoft Data Formatting Object Library
Form=frmDocument2.frm
Form=frmTabl2.frm
Form=frmCheck2.frm
Form=Form5.frm
Form=Form6.frm
Form=Form7.frm
Form=Form8.frm
Form=Form9.frm
Form=Form10.frm
IconForm=»Form1″
Startup=»Form1″
ExeName32=»Magazine.exe»
Command32=»»
Name=»Project1″
HelpContextID=»0″
CompatibleMode=»0″
MajorVer=1
MinorVer=0
RevisionVer=0
AutoIncrementVer=0
ServerSupportFiles=0
CompilationType=0
OptimizationType=0
FavorPentiumPro™=0
CodeViewDebugInfo=0
NoAliasing=0
BoundsCheck=0
OverflowCheck=0
FlPointCheck=0
FDIVCheck=0
UnroundedFP=0
StartMode=0
Unattended=0
Retained=0
ThreadPerObject=0
MaxNumberOfThreads=1
DebugStartupOption=0

[MS Transaction Server]
AutoRefresh=1

—————————————
Копирую в папку где устанолена моя программа файлы на которые ссылется проект:

msado20.tlb
COMDLG32.OCX
MSCOMCTL.OCX
MSDATGRD.OCX

и файлы которые просит при запуске
MSSTDFMT.DLL
msvbvm60.dll
VB5DB.DLL

Запускаю программу. Но опять таже ошибка.
Объясните на пальцах как ее устранить, что и куда нужно дописать что бы заработало.

smile smile

Akina

Советчик
****

Профиль
Группа: Модератор
Сообщений: 20560
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 453

Цитата(ArtNeoX @ 24.1.2006, 17:33 Найти цитируемый пост)
Class not registered
Looking for object with CLSID :{00000010-0000-0010-8000-00AA006D2EA4}

Это DAO.DBEngine 3.5.
Установи/зарегистрируй.

———————

 О(б)суждение моих действий — в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция — Администрация форума.

ArtNeoX

Шустрый
*

Профиль
Группа: Участник
Сообщений: 125
Регистрация: 23.10.2005

Репутация: нет
Всего: нет

как это сделать ?

Akina

Советчик
****

Профиль
Группа: Модератор
Сообщений: 20560
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 453

Скачать последний MDAC с сайта M$ и установить.

———————

 О(б)суждение моих действий — в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция — Администрация форума.

Voldemar2004

Эксперт
***

Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: 7
Всего: 23

Akina, может постоянную ссылку сделать на форуме на этот MDAC? В FAQ по VB 6. Уж очень часто люди сталкиваются с этой проблемой. Или скачать последнюю версию и положить на в FAQ.

———————

i_i 
(‘;’) 
(V)

user posted image

Exception

Эксперт
****

Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 7
Всего: 186

В шапке форума может? Типа
«MDAC можно скачать здесь»

ArtNeoX

Шустрый
*

Профиль
Группа: Участник
Сообщений: 125
Регистрация: 23.10.2005

Репутация: нет
Всего: нет

Скачать последний MDAC с сайта M$ и установить.
откуда?
Добавлено @ 21:40
это вот это что ли ?
smile

Microsoft Data Access Components (MDAC)2.8 RU
http://download.microsoft.com/download/c/f…48/MDAC_TYP.EXE

Microsoft Data Access Components (MDAC)2.8 ENGL
http://download.microsoft.com/download/c/d…6f/MDAC_TYP.EXE

ArtNeoX

Шустрый
*

Профиль
Группа: Участник
Сообщений: 125
Регистрация: 23.10.2005

Репутация: нет
Всего: нет

скачал. на win xp sp2 не устанавливается, пишет что типа это уже установлено с виндовс.
в win xp sp1 и win me установилось.
но ошибка никуда не исчезла.
прочитал на другом форуме что нужно написать в своем проекте при запуске строку
DAO = CreateObject(«DAO.DBEngine.35»)
однако теперь добавилась еще ошибка
Run-time error ‘429’:
ActiveX component can’t create object

что делать? smile

Voldemar2004

Эксперт
***

Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: 7
Всего: 23

Цитата(ArtNeoX @ 25.1.2006, 03:41 Найти цитируемый пост)
что делать?

Я решил эту проблему с помощью C++ Builder от Borland.

———————

i_i 
(‘;’) 
(V)

user posted image

Akina

Советчик
****

Профиль
Группа: Модератор
Сообщений: 20560
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 453

Последний — Microsoft Data Access Components 2.8 SP 1. И вообще — найти его на download.microsoft.com не составляет труда.
А выкладывать тут и следить за обновлениями или давать ссылку и тоже следить за актуальностью — оно кому надо?

———————

 О(б)суждение моих действий — в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция — Администрация форума.

ArtNeoX

Шустрый
*

Профиль
Группа: Участник
Сообщений: 125
Регистрация: 23.10.2005

Репутация: нет
Всего: нет

Ну объясните же наконец как сделать, либо дайте ссылку на литературу по этому вопросу, если сами не знаете как или лень писать сдесь.

Exception

Эксперт
****

Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 7
Всего: 186

Цитата(ArtNeoX @ 28.1.2006, 19:46 Найти цитируемый пост)
Ну объясните же наконец как сделать, либо дайте ссылку на литературу по этому вопросу, если сами не знаете как или лень писать сдесь.

Тебе непонятно сказали? Скачай MDAC 2.8 SP 1, установи.
А вообще,
Модератор: Пожалуйста, один топик — один вопрос. smile

Это сообщение отредактировал(а) Exception — 29.1.2006, 17:07

ArtNeoX

Шустрый
*

Профиль
Группа: Участник
Сообщений: 125
Регистрация: 23.10.2005

Репутация: нет
Всего: нет

Скачал, установил. Все осталось без изменений.

Exception

Эксперт
****

Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 7
Всего: 186

У меня тоже так бажило. Решил переустановкой системы и сносом офиса.

ArtNeoX

Шустрый
*

Профиль
Группа: Участник
Сообщений: 125
Регистрация: 23.10.2005

Репутация: нет
Всего: нет

Есть ли какой либо инстолятор, который сам выбирает что нужно устанавливать?
Если я добавлю в реестр windows инфу о том что на компьютере установлен vb6 и скопирую файлы которые требует программа в папку windows/system32 где они и находятся, заработает?

cardinal

Инженер
****

Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99

А это что?
http://forum.vingrad.ru/index.php?showtopic=57092 (читай до конца!)
и
Создание дистрибутива для Visual Basic — проектов, минуя Package And Deployment Wizard

———————

Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

«Познание бесконечности требует бесконечного времени, а потому работай не работай — все едино».  А. и Б. Стругацкие

ArtNeoX

Шустрый
*

Профиль
Группа: Участник
Сообщений: 125
Регистрация: 23.10.2005

Репутация: нет
Всего: нет

У меня в References проекта выбраны:
Visual Basic For Applications
Visual Basic runtime objects and procedures
Visual Basic Object and procedures
OLE Automation
Microsoft ActiveX Data Objects 2.0. Library
Microsoft Excel 11.0 Object Library
Microsoft Data Formating Object Library

После установки Microsoft Data Access Components (MDAC)2.8 RU нужно ли что то подключать в проекте в References ?

этой вот nsis можно сделать что бы исчезла ошибка

Class not registered
Looking for object with CLSID :{00000010-0000-0010-8000-00AA006D2EA4}

Run-time error ‘3706’
Не удается найти указанного поставщика. Вероятно, он установлен неправильно.

при создании инстолятора способом описанным в ссылке http://forum.vingrad.ru/index.php?showtopic=57092
ошибка осталась.

ArtNeoX

Шустрый
*

Профиль
Группа: Участник
Сообщений: 125
Регистрация: 23.10.2005

Репутация: нет
Всего: нет

сделал reg файл с таким содержанием

REGEDIT4

[HKEY_CLASSES_ROOTDAO.DBEngine.35] @=»Microsoft DAO 3.51 Object Library DBEngine»
[HKEY_CLASSES_ROOTDAO.DBEngine.35CLSID] @=»{00000010-0000-0010-8000-00AA006D2EA4}»
[HKEY_CLASSES_ROOTCLSID{00000010-0000-0010-8000-00AA006D2EA4}] @=»DAO.DBEngine.35″
[HKEY_CLASSES_ROOTCLSID{00000010-0000-0010-8000-00AA006D2EA4}InprocServer32] @=»C:\TEMP\DAO350.DLL» «ThreadingModel»=»Apartment»
[HKEY_CLASSES_ROOTCLSID{00000010-0000-0010-8000-00AA006D2EA4}ProgID] @=»DAO.DBEngine.35″

кинул в папку c:TEMPDAO350.DLL

Запустил reg файл. Потом программу.
Теперь ошибка
Data Access Error

и

Run-time error ‘3706’
не удается найти уазанного постовщика. Вероятно, он установлен непраильно.

smile

ArtNeoX

Шустрый
*

Профиль
Группа: Участник
Сообщений: 125
Регистрация: 23.10.2005

Репутация: нет
Всего: нет

как пользоваться resvr32.exe

ArtNeoX

Шустрый
*

Профиль
Группа: Участник
Сообщений: 125
Регистрация: 23.10.2005

Репутация: нет
Всего: нет

Как перенести программу использующую Microsoft DAO 3.51 Object Library на другой компьютер я разобрался.
А вот как перенести программу использующую Microsoft ActiveX Data Objects 2.0 Library на другой компьютер не пойму.
в References — ссылка на файл msado20.tlb, а какие еще файлы нужно копировать и регистировать по мимо этого?

Exception

Эксперт
****

Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 7
Всего: 186

Цитата(ArtNeoX @ 4.2.2006, 14:05 Найти цитируемый пост)
а какие еще файлы нужно копировать и регистировать по мимо этого?

Дык вроде бы только этот.

Цитата(ArtNeoX @ 4.2.2006, 12:05 Найти цитируемый пост)
как пользоваться resvr32.exe

regsvr32.exe путь_к_твоей_длл_или_ocx

ArtNeoX

Шустрый
*

Профиль
Группа: Участник
Сообщений: 125
Регистрация: 23.10.2005

Репутация: нет
Всего: нет

при запуске программы использующей datagreed
ошибка на другом компьютере

Run-time error ‘3706’
Не удается найти указанного поставщика. Вероятно, он установлен неправильно.

что это за ошибка?

ArtNeoX

Шустрый
*

Профиль
Группа: Участник
Сообщений: 125
Регистрация: 23.10.2005

Репутация: нет
Всего: нет

Установка MDAC 2.8 не помогает.

оишибка Run-time error ‘3706’ Не удается найти указанного поставщика. Вероятно, он установлен неправильно.
остается.
Используется datagreed ей соответствует файл msado20.tlb

regsvr32.exe msado20.tlb

не работает. Пишет что надо или dll или OCX
Какой файл надо прорегистрировать, что бы убрать ошибку ?
Добавлено @ 13:17
Установка MDAC 2.8 не помогает.

оишибка Run-time error ‘3706’ Не удается найти указанного поставщика. Вероятно, он установлен неправильно.
остается.
Используется datagreed ей соответствует файл msado20.tlb

regsvr32.exe msado20.tlb

не работает. Пишет что надо или dll или OCX
Какой файл надо прорегистрировать, что бы убрать ошибку ?

Exception

Эксперт
****

Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 7
Всего: 186

Цитата(ArtNeoX @ 4.2.2006, 21:39 Найти цитируемый пост)

Run-time error ‘3706’
Не удается найти указанного поставщика. Вероятно, он установлен неправильно.

что это за ошибка?

Установи там последний MDAC.

ArtNeoX

Шустрый
*

Профиль
Группа: Участник
Сообщений: 125
Регистрация: 23.10.2005

Репутация: нет
Всего: нет

Да, установил я его — ни-фи-га…

kulibin

Бывалый
*

Профиль
Группа: Участник
Сообщений: 229
Регистрация: 9.5.2005
Где: Украина, Запорожь е

Репутация: 2
Всего: 3

Цитата(ArtNeoX @ 5.2.2006, 13:16 Найти цитируемый пост)
Используется datagreed ей соответствует файл msado20.tlb

Господи! Кто тебе это сказал? Или сам догадался? smile
Прочти внимательнее название етого файла — ну написано же английским по белому — АДО это.
Вот табе код для Inno Setup — все нужные тебе длл/осх — у меня программа была с такими же референсами:

Код

Source: "Msjint35.dll"; DestDir: "{sys}"; CopyMode: alwaysskipifsameorolder; Flags: uninsneveruninstall
Source: "Msjter35.dll"; DestDir: "{sys}"; CopyMode: alwaysskipifsameorolder; Flags: uninsneveruninstall
Source: "msado20.tlb"; DestDir: "{sys}"; CopyMode: alwaysskipifsameorolder; Flags: uninsneveruninstall regtypelib
Source: "Msbind.dll"; DestDir: "{sys}"; CopyMode: alwaysskipifsameorolder; Flags: uninsneveruninstall regserver
Source: "Msdatgrd.ocx"; DestDir: "{sys}"; CopyMode: alwaysskipifsameorolder; Flags: uninsneveruninstall regserver
Source: "Msstdfmt.dll"; DestDir: "{sys}"; CopyMode: alwaysskipifsameorolder; Flags: uninsneveruninstall regserver
Source: "Msvbvm60.dll"; DestDir: "{sys}"; CopyMode: alwaysskipifsameorolder; Flags: uninsneveruninstall regserver
Source: "Scrrun.dll"; DestDir: "{sys}"; CopyMode: alwaysskipifsameorolder; Flags: uninsneveruninstall regserver
Source: "msjt4jlt.dll"; DestDir: "{sys}"; CopyMode: alwaysskipifsameorolder; Flags: uninsneveruninstall regserver
Source: "msjtor35.dll"; DestDir: "{sys}"; CopyMode: alwaysskipifsameorolder; Flags: uninsneveruninstall regserver

файлик: Msdatgrd.ocx — что это по твоему? smile.
В этом списке всё, что надо для адо и jet 3.51. Я в сетуп рограммы этой мдак не включал — токо эти длл из него выковырял. Датагрид то в мдак не входит.
тлб как руками зарегить — не помню можно ли regsvr32
а длл/осх смотри по списку — если стоит «regserver» — то надо регить — а если нет — то не надо!
Про regsvr32 — ты путь к файлу который региш писал?
вот так: regsvr32 C:winda……my_dll.dll — путь полный надо.
Причём имена папок там длинные не поддерживаются — если больше 7 букв — то оставляеш токо 5 букв и тильду (~) с единичкой (myfolder = myfol~1).
а адо то в мдак точно входит — его руками не надо если мдак установил.

Вобчем тебе датагрид надо зарегистрировать(Msdatgrd.ocx). Токо боюсь что это не всё.
Если не поможет — проверь есть ли в системе все перечисленные в списке моём компоненты. Что надо ставь и регь — или просто кидай в …виндоузсистем — если в списке на этом элементе нет ключа «regserver».
Список полный и проверен 2-мя годами smile — и до сих пор почти ежемесячно ставлю кому-то эту прогу — жалоб не было.
Добавлено @ 23:55
Ой блин — погоди! Ты с какой БД то работаеш? Я чёто решил что аксес — но потом токо понял что не видел слова этого нигде smile.
Вобчем если аксес и бд в формате аксеса 97 — то это оно. Если формат новее — то тебе надо установить JET 4.0! А если не аксес — то провайдер, однако, совсем не обязательно в мдаке твой есть smile. БД какая у тебя?

ArtNeoX

Шустрый
*

Профиль
Группа: Участник
Сообщений: 125
Регистрация: 23.10.2005

Репутация: нет
Всего: нет

kulibin, спасибо за исчерпывающий ответ. Но я уже разобрался.
Сделал вот как.
PDWizard создал MDAC_TYP.exe со всеми компанентами.
Установил его на компьютере без VB6
в папку со своей программой поместил файлы
DAO350.DLL
MSSTDFMT.DLL
VB5DB.DLL
и
REGSVR32.exe
создал bat файл со следующим содержанием.
@echo off
RegSvr32.exe DAO350.DLL
RegSvr32.exe MSSTDFMT.DLL
PAUSE

Запустил bat файл на выполнение для регистрации файлов.
Теперь все работает.

kulibin

Бывалый
*

Профиль
Группа: Участник
Сообщений: 229
Регистрация: 9.5.2005
Где: Украина, Запорожь е

Репутация: 2
Всего: 3

Ну поздравляю smile. Но если программу будеш распространять более масштабно — то мдак этот (10Мб вроде весит) великоват — мягко выражаясь smile. А всё что нужно для его замены в моём предыдущем посте. Да и в system либы то ложить надо бы. Ну и для создания сетупов то качни что-то приличное — бат версии длл/осх не отслеживает. А руками устанавливать программы свои не гоже. Для этого есть отличные бесплатные программы.

ArtNeoX

Шустрый
*

Профиль
Группа: Участник
Сообщений: 125
Регистрация: 23.10.2005

Репутация: нет
Всего: нет

кинь ссылочку.

Exception

Эксперт
****

Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 7
Всего: 186

Погугли «CreateInstall» — отличная вещь.

kulibin

Бывалый
*

Профиль
Группа: Участник
Сообщений: 229
Регистрация: 9.5.2005
Где: Украина, Запорожь е

Репутация: 2
Всего: 3

Inno Setup Compiller
А в другой теме cardinal ещё какой-то писал и утверждал что он круче. Ну этот супер — мне очень нравится. Он бесплатный. Делает всё что хочеш. И освоить его очень легко. Там есть мастер и примеры скриптов. Ну и справка есть. Ну и мой кусок скрипта что я давал можеш прямо скопировать и вставить. Токо не забудь другие файлы там написать, создание ярлыков и все файлы используемые ложи в ту же папку где и скрипт лежит. Можно путь к ним указать — но лучше этого не делать — и текста больше и путь может измениться — и будеш потом искать.
Ещё говорят его русифицировать можно — т.е. чтобы при установке программы русский текст выдавал. Но у меня руки не дошли и не помню как.

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

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Скажите, пожалуйста, какая ошибка в макросе.
Ошибка возникает в строке 20. Полный текст ошибки: Run-time Error ‘3706’ Не удается найти указанный поставщик. Возможно, он установлен неправильно.

Макрос

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Sub Procedure_1()
    
    'Путь к папке, где содержатся текстовые файлы.
    Const myFolderPath As String = "C:\Users\User\Desktop\;"
        
    'Библиотека "Microsoft ActiveX Data Objects версия Library".
    Dim myConnection As ADODB.Connection
    
    
    'Создание объекта "Connection".
    Set myConnection = CreateObject(Class:="ADODB.Connection")
    
    'Указываем, какой провайдер нужно использовать, адрес базы данных,
        'дополнительные параметры.
    myConnection.ConnectionString = _
        "Provider={Microsoft Text Driver (*.txt; *.csv)};DBQ=" & myFolderPath & _
        "Extensions=asc,csv,tab,txt"
 
    'Подключение к базе данных.
    myConnection.Open
    
End Sub

Вообще задача следующая: нужно из Excel получить доступ к CSV-файлу, чтобы работать с CSV-файлом не в программе «Excel», а как с базой данных. Так по идее правильнее будет.

Ещё хотелось бы пользоваться одним поставщиком (а не несколькими) в разных версиях «MS Office».

Примечание

Поставщик (имеет ещё название «провайдер») — это программа, которая подключается к базе данных. База данных в данной теме — это CSV-файл. Поставщик в данной теме «Microsoft Text ODBC Driver» (в макросе поставщик записан «{Microsoft Text Driver (*.txt; *.csv)}».
Библиотека «ADO» подключается к поставщику.
Макрос подключается к библиотеке «ADO».



0



Аксима

6078 / 1322 / 195

Регистрация: 12.12.2012

Сообщений: 1,023

07.11.2013, 16:28

2

Здравствуйте, Скрипт,

Есть несколько замечаний по вашей строке подключения:

  1. Рассмотрим часть вашей строки подключения «Provider={Microsoft Text Driver (*.txt; *.csv)}…». Название параметра здесь не Provider, а Driver. Смотрите официальную статью Microsoft, раздел «Строки подключения ODBC».
  2. После замены названия параметра мы обнаружим, что в вашей строке подключения не указан поставщик (Provider). Нужно его указать.

На моей машине из числа ODBC поставщиков есть поставщик MSDASQL, а исправленная программа выглядит так:

ODBC подключение к текстовому файлу

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
Sub Procedure_1()
 
    Const Q As String = """"
    
    'Ïóòü ê ïàïêå, ãäå ñîäåðæàòñÿ òåêñòîâûå ôàéëû.
    Const myFolderPath As String = "C:\Users\User\Desktop"
    
    'Èìÿ òåêñòîâîãî ôàéëà.
    Const myDatabaseFile As String = "test.csv"
    
    'Îáúÿâëÿåì ïåðåìåííûå îáúåêòíîãî òèïà (èñïîëüçóåì ïîçäíåå ñâÿçûâàíèå).
    Dim myConnection As Object
    Dim myRecordset As Object
 
    'Ñîçäàåì îáúåêò "Connection".
    Set myConnection = CreateObject(Class:="ADODB.Connection")
    
    'Óêàçûâàåì, êàêîé ïðîâàéäåð íóæíî èñïîëüçîâàòü, àäðåñ áàçû äàííûõ,
        'äîïîëíèòåëüíûå ïàðàìåòðû.
    myConnection.ConnectionString = _
        "Provider=MSDASQL.1;" & _
        "Extended Properties=" & _
        Q & _
            "Driver={Microsoft Access Text Driver (*.txt, *.csv)};" & _
            "DBQ=" & myFolderPath & ";" & _
            "Extensions=txt,csv,tab,asc;" & _
            "FileDSN=" & myFolderPath & "\" & myDatabaseFile & ".dsn" & _
        Q
 
    'Ïîäêëþ÷àåìñÿ ê áàçå äàííûõ.
    myConnection.Open
    
    'Ñîçäàåì îáúåêò "Recordset".
    Set myRecordset = CreateObject(Class:="ADODB.Recordset")
    
    'Óêàçûâàåì ñîåäèíåíèå, èñïîëüçóåìîå îáúåêòîì "Recordset".
    myRecordset.ActiveConnection = myConnection
    
    'Âûïîëíÿåì çàïðîñ ê áàçå äàííûõ.
    myRecordset.Open "SELECT * FROM " & myDatabaseFile
    
    'Òåñòèðóåì ðåçóëüòàò çàïðîñà.
    With myRecordset.Fields(0)
        Debug.Print "Ïåðâîå çíà÷åíèå ïîëÿ " & Q & .Name & Q & " ðàâíî " & .Value
    End With
    
    'Çàêðûâàåì íàáîð çàïèñåé.
    myRecordset.Close
    
    'Îñâîáîæäàåì ñîåäèíåíèå.
    myConnection.Close
    
End Sub

С уважением,

Aksima



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» можно устанавливать только в двух местах:

  1. Windows-реестр;
  2. нужно создать текстовый файл и поместить его в специальное место. Из этого текстового файла макрос будет брать разделитель.

Если это так, то, наверное, в моём случае не подходит использование «ADO», т.к. сложно всё получается.

Мне нужно указать разделитель «;».



0



6078 / 1322 / 195

Регистрация: 12.12.2012

Сообщений: 1,023

07.11.2013, 17:42

4

Здравствуйте, Скрипт,

Да, вы правы. Если нужно использовать особый разделитель, то необходимо либо изменить соответствующую запись в реестре, либо использовать файл schema.ini.

По ссылке Excel, csv & Query вы можете найти мое решение этой проблемы.

С уважением,

Aksima



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-файл. Таким образом, указанное выше условие соблюдается.

Visual Basic
1
2
3
4
5
6
7
p = Application.GetOpenFilename("CSV data logs,*.csv", , _
    "Укажите расположение csv-файла", , False)
' ...
p = Left(p, InStrRev(p, "\")) 'Путь к папке csv-файла.
' ...
Open p & "schema.ini" For Output As #1
' ...

С уважением,

Aksima



1



> Помогите убрать ошибку, не пойму как это сделать 

:(

   

Опции темы

ArtNeoX
Дата 24.1.2006, 16:33 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Шустрый
*

Профиль
Группа: Участник
Сообщений: 125
Регистрация: 23.10.2005

Репутация: нет
Всего: нет

Создал приложение. Оно работает только на компьютере где установлен vb6.
При переносе на другой компьютер, при запуске программы возникают следующие ошибки:

Class not registered
Looking for object with CLSID :{00000010-0000-0010-8000-00AA006D2EA4}

Run-time error ‘3706’
Не удается найти указанного поставщика. Вероятно, он установлен неправильно.

Открываю файл Project1.vbp в блокноте. Вот его содержание:

——————————
Type=Exe
Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#..\..\..\WINDOWS\System32\stdole2.tlb#OLE Automation
Reference=*\G{00000200-0000-0010-8000-00AA006D2EA4}#2.0#0#..\..\..\Program Files\Common Files\system\ado\msado20.tlb#Microsoft ActiveX Data Objects 2.0 Library
Reference=*\G{00020813-0000-0000-C000-000000000046}#1.5#0#..\..\..\Program Files\Microsoft Office\OFFICE11\EXCEL.EXE#Microsoft Excel 11.0 Object Library
Object={F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0; COMDLG32.OCX
Object={831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0; MSCOMCTL.OCX
Object={CDE57A40-8B86-11D0-B3C6-00A0C90AEA82}#1.0#0; MSDATGRD.OCX
Form=Form1.frm
Form=frmMain.frm
Form=frmDocument.frm
Form=frmTabl1.frm
Module=Module1; Module1.bas
Form=frmCheck1.frm
Form=Form3.frm
Form=Form2.frm
Form=Form4.frm
Reference=*\G{6B263850-900B-11D0-9484-00A0C91110ED}#1.0#0#..\..\..\WINDOWS\System32\MSSTDFMT.DLL#Microsoft Data Formatting Object Library
Form=frmDocument2.frm
Form=frmTabl2.frm
Form=frmCheck2.frm
Form=Form5.frm
Form=Form6.frm
Form=Form7.frm
Form=Form8.frm
Form=Form9.frm
Form=Form10.frm
IconForm=»Form1″
Startup=»Form1″
ExeName32=»Magazine.exe»
Command32=»»
Name=»Project1″
HelpContextID=»0″
CompatibleMode=»0″
MajorVer=1
MinorVer=0
RevisionVer=0
AutoIncrementVer=0
ServerSupportFiles=0
CompilationType=0
OptimizationType=0
FavorPentiumPro™=0
CodeViewDebugInfo=0
NoAliasing=0
BoundsCheck=0
OverflowCheck=0
FlPointCheck=0
FDIVCheck=0
UnroundedFP=0
StartMode=0
Unattended=0
Retained=0
ThreadPerObject=0
MaxNumberOfThreads=1
DebugStartupOption=0

[MS Transaction Server]
AutoRefresh=1

—————————————
Копирую в папку где устанолена моя программа файлы на которые ссылется проект:

msado20.tlb
COMDLG32.OCX
MSCOMCTL.OCX
MSDATGRD.OCX

и файлы которые просит при запуске
MSSTDFMT.DLL
msvbvm60.dll
VB5DB.DLL

Запускаю программу. Но опять таже ошибка.
Объясните на пальцах как ее устранить, что и куда нужно дописать что бы заработало.

smile smile

PM MAIL   Вверх
Akina
Дата 24.1.2006, 16:40 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Советчик
****

Профиль
Группа: Модератор
Сообщений: 20562
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 453

Цитата(ArtNeoX @ 24.1.2006, 17:33 Найти цитируемый пост)
Class not registered
Looking for object with CLSID :{00000010-0000-0010-8000-00AA006D2EA4}

Это DAO.DBEngine 3.5.
Установи/зарегистрируй.

———————

 О(б)суждение моих действий — в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция — Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
ArtNeoX
Дата 24.1.2006, 18:05 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Шустрый
*

Профиль
Группа: Участник
Сообщений: 125
Регистрация: 23.10.2005

Репутация: нет
Всего: нет

как это сделать ?

PM MAIL   Вверх
Akina
Дата 24.1.2006, 18:49 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Советчик
****

Профиль
Группа: Модератор
Сообщений: 20562
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 453

Скачать последний MDAC с сайта M$ и установить.

———————

 О(б)суждение моих действий — в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция — Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Voldemar2004
Дата 24.1.2006, 19:34 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Эксперт
***

Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: 7
Всего: 23

Akina, может постоянную ссылку сделать на форуме на этот MDAC? В FAQ по VB 6. Уж очень часто люди сталкиваются с этой проблемой. Или скачать последнюю версию и положить на в FAQ.

———————

i_i 
(‘;’) 
(V)

user posted image

PM MAIL   Вверх
Exception
Дата 24.1.2006, 19:56 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Эксперт
****

Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 7
Всего: 186

В шапке форума может? Типа
«MDAC можно скачать здесь»

PM   Вверх
ArtNeoX
Дата 24.1.2006, 21:26 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Шустрый
*

Профиль
Группа: Участник
Сообщений: 125
Регистрация: 23.10.2005

Репутация: нет
Всего: нет

Скачать последний MDAC с сайта M$ и установить.
откуда?
Добавлено @ 21:40
это вот это что ли ?
smile

Microsoft Data Access Components (MDAC)2.8 RU
http://download.microsoft.com/download/c/f…48/MDAC_TYP.EXE

Microsoft Data Access Components (MDAC)2.8 ENGL
http://download.microsoft.com/download/c/d…6f/MDAC_TYP.EXE

PM MAIL   Вверх
ArtNeoX
Дата 25.1.2006, 03:41 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Шустрый
*

Профиль
Группа: Участник
Сообщений: 125
Регистрация: 23.10.2005

Репутация: нет
Всего: нет

скачал. на win xp sp2 не устанавливается, пишет что типа это уже установлено с виндовс.
в win xp sp1 и win me установилось.
но ошибка никуда не исчезла.
прочитал на другом форуме что нужно написать в своем проекте при запуске строку
DAO = CreateObject(«DAO.DBEngine.35»)
однако теперь добавилась еще ошибка
Run-time error ‘429’:
ActiveX component can’t create object

что делать? smile

PM MAIL   Вверх
Voldemar2004
Дата 25.1.2006, 10:11 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Эксперт
***

Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: 7
Всего: 23

Цитата(ArtNeoX @ 25.1.2006, 03:41 Найти цитируемый пост)
что делать?

Я решил эту проблему с помощью C++ Builder от Borland.

———————

i_i 
(‘;’) 
(V)

user posted image

PM MAIL   Вверх
Akina
Дата 25.1.2006, 10:16 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Советчик
****

Профиль
Группа: Модератор
Сообщений: 20562
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 453

Последний — Microsoft Data Access Components 2.8 SP 1. И вообще — найти его на download.microsoft.com не составляет труда.
А выкладывать тут и следить за обновлениями или давать ссылку и тоже следить за актуальностью — оно кому надо?

———————

 О(б)суждение моих действий — в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция — Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
ArtNeoX
Дата 28.1.2006, 18:46 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Шустрый
*

Профиль
Группа: Участник
Сообщений: 125
Регистрация: 23.10.2005

Репутация: нет
Всего: нет

Ну объясните же наконец как сделать, либо дайте ссылку на литературу по этому вопросу, если сами не знаете как или лень писать сдесь.

PM MAIL   Вверх
Exception
Дата 29.1.2006, 17:06 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Эксперт
****

Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 7
Всего: 186

Цитата(ArtNeoX @ 28.1.2006, 19:46 Найти цитируемый пост)
Ну объясните же наконец как сделать, либо дайте ссылку на литературу по этому вопросу, если сами не знаете как или лень писать сдесь.

Тебе непонятно сказали? Скачай MDAC 2.8 SP 1, установи.
А вообще,
Модератор: Пожалуйста, один топик — один вопрос. smile

Это сообщение отредактировал(а) Exception — 29.1.2006, 17:07

PM   Вверх
ArtNeoX
Дата 29.1.2006, 19:35 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Шустрый
*

Профиль
Группа: Участник
Сообщений: 125
Регистрация: 23.10.2005

Репутация: нет
Всего: нет

Скачал, установил. Все осталось без изменений.

PM MAIL   Вверх
Exception
Дата 30.1.2006, 17:36 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Эксперт
****

Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 7
Всего: 186

У меня тоже так бажило. Решил переустановкой системы и сносом офиса.

PM   Вверх
ArtNeoX
Дата 30.1.2006, 18:08 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Шустрый
*

Профиль
Группа: Участник
Сообщений: 125
Регистрация: 23.10.2005

Репутация: нет
Всего: нет

Есть ли какой либо инстолятор, который сам выбирает что нужно устанавливать?
Если я добавлю в реестр windows инфу о том что на компьютере установлен vb6 и скопирую файлы которые требует программа в папку windows/system32 где они и находятся, заработает?

PM MAIL   Вверх
cardinal
Дата 30.1.2006, 21:43 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Инженер
****

Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99

А это что?
http://forum.vingrad.ru/index.php?showtopic=57092 (читай до конца!)
и
Создание дистрибутива для Visual Basic — проектов, минуя Package And Deployment Wizard

———————

Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

«Познание бесконечности требует бесконечного времени, а потому работай не работай — все едино».  А. и Б. Стругацкие

PM   Вверх
ArtNeoX
Дата 31.1.2006, 19:23 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Шустрый
*

Профиль
Группа: Участник
Сообщений: 125
Регистрация: 23.10.2005

Репутация: нет
Всего: нет

У меня в References проекта выбраны:
Visual Basic For Applications
Visual Basic runtime objects and procedures
Visual Basic Object and procedures
OLE Automation
Microsoft ActiveX Data Objects 2.0. Library
Microsoft Excel 11.0 Object Library
Microsoft Data Formating Object Library

После установки Microsoft Data Access Components (MDAC)2.8 RU нужно ли что то подключать в проекте в References ?

этой вот nsis можно сделать что бы исчезла ошибка

Class not registered
Looking for object with CLSID :{00000010-0000-0010-8000-00AA006D2EA4}

Run-time error ‘3706’
Не удается найти указанного поставщика. Вероятно, он установлен неправильно.

при создании инстолятора способом описанным в ссылке http://forum.vingrad.ru/index.php?showtopic=57092
ошибка осталась.

PM MAIL   Вверх
ArtNeoX
Дата 31.1.2006, 21:22 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Шустрый
*

Профиль
Группа: Участник
Сообщений: 125
Регистрация: 23.10.2005

Репутация: нет
Всего: нет

сделал reg файл с таким содержанием

REGEDIT4

[HKEY_CLASSES_ROOT\DAO.DBEngine.35] @=»Microsoft DAO 3.51 Object Library DBEngine»
[HKEY_CLASSES_ROOT\DAO.DBEngine.35\CLSID] @=»{00000010-0000-0010-8000-00AA006D2EA4}»
[HKEY_CLASSES_ROOT\CLSID\{00000010-0000-0010-8000-00AA006D2EA4}] @=»DAO.DBEngine.35″
[HKEY_CLASSES_ROOT\CLSID\{00000010-0000-0010-8000-00AA006D2EA4}\InprocServer32] @=»C:\\TEMP\\DAO350.DLL» «ThreadingModel»=»Apartment»
[HKEY_CLASSES_ROOT\CLSID\{00000010-0000-0010-8000-00AA006D2EA4}\ProgID] @=»DAO.DBEngine.35″

кинул в папку c:\TEMP\DAO350.DLL

Запустил reg файл. Потом программу.
Теперь ошибка
Data Access Error

и

Run-time error ‘3706’
не удается найти уазанного постовщика. Вероятно, он установлен непраильно.

smile

PM MAIL   Вверх
ArtNeoX
Дата 4.2.2006, 11:05 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Шустрый
*

Профиль
Группа: Участник
Сообщений: 125
Регистрация: 23.10.2005

Репутация: нет
Всего: нет

как пользоваться resvr32.exe

PM MAIL   Вверх
ArtNeoX
Дата 4.2.2006, 13:05 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Шустрый
*

Профиль
Группа: Участник
Сообщений: 125
Регистрация: 23.10.2005

Репутация: нет
Всего: нет

Как перенести программу использующую Microsoft DAO 3.51 Object Library на другой компьютер я разобрался.
А вот как перенести программу использующую Microsoft ActiveX Data Objects 2.0 Library на другой компьютер не пойму.
в References — ссылка на файл msado20.tlb, а какие еще файлы нужно копировать и регистировать по мимо этого?

PM MAIL   Вверх
Exception
Дата 4.2.2006, 14:59 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Эксперт
****

Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 7
Всего: 186

Цитата(ArtNeoX @ 4.2.2006, 14:05 Найти цитируемый пост)
а какие еще файлы нужно копировать и регистировать по мимо этого?

Дык вроде бы только этот.

Цитата(ArtNeoX @ 4.2.2006, 12:05 Найти цитируемый пост)
как пользоваться resvr32.exe

regsvr32.exe путь_к_твоей_длл_или_ocx

PM   Вверх
ArtNeoX
Дата 4.2.2006, 20:39 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Шустрый
*

Профиль
Группа: Участник
Сообщений: 125
Регистрация: 23.10.2005

Репутация: нет
Всего: нет

при запуске программы использующей datagreed
ошибка на другом компьютере

Run-time error ‘3706’
Не удается найти указанного поставщика. Вероятно, он установлен неправильно.

что это за ошибка?

PM MAIL   Вверх
ArtNeoX
Дата 5.2.2006, 13:16 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Шустрый
*

Профиль
Группа: Участник
Сообщений: 125
Регистрация: 23.10.2005

Репутация: нет
Всего: нет

Установка MDAC 2.8 не помогает.

оишибка Run-time error ‘3706’ Не удается найти указанного поставщика. Вероятно, он установлен неправильно.
остается.
Используется datagreed ей соответствует файл msado20.tlb

regsvr32.exe msado20.tlb

не работает. Пишет что надо или dll или OCX
Какой файл надо прорегистрировать, что бы убрать ошибку ?
Добавлено @ 13:17
Установка MDAC 2.8 не помогает.

оишибка Run-time error ‘3706’ Не удается найти указанного поставщика. Вероятно, он установлен неправильно.
остается.
Используется datagreed ей соответствует файл msado20.tlb

regsvr32.exe msado20.tlb

не работает. Пишет что надо или dll или OCX
Какой файл надо прорегистрировать, что бы убрать ошибку ?

PM MAIL   Вверх
Exception
Дата 5.2.2006, 13:24 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Эксперт
****

Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 7
Всего: 186

Цитата(ArtNeoX @ 4.2.2006, 21:39 Найти цитируемый пост)

Run-time error ‘3706’
Не удается найти указанного поставщика. Вероятно, он установлен неправильно.

что это за ошибка?

Установи там последний MDAC.

PM   Вверх
ArtNeoX
Дата 5.2.2006, 17:06 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Шустрый
*

Профиль
Группа: Участник
Сообщений: 125
Регистрация: 23.10.2005

Репутация: нет
Всего: нет

Да, установил я его — ни-фи-га…

PM MAIL   Вверх
kulibin
Дата 7.2.2006, 23:51 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Бывалый
*

Профиль
Группа: Участник
Сообщений: 229
Регистрация: 9.5.2005
Где: Украина, Запорожь е

Репутация: 2
Всего: 3

Цитата(ArtNeoX @ 5.2.2006, 13:16 Найти цитируемый пост)
Используется datagreed ей соответствует файл msado20.tlb

Господи! Кто тебе это сказал? Или сам догадался? smile
Прочти внимательнее название етого файла — ну написано же английским по белому — АДО это.
Вот табе код для Inno Setup — все нужные тебе длл/осх — у меня программа была с такими же референсами:

Код

Source: "Msjint35.dll"; DestDir: "{sys}"; CopyMode: alwaysskipifsameorolder; Flags: uninsneveruninstall
Source: "Msjter35.dll"; DestDir: "{sys}"; CopyMode: alwaysskipifsameorolder; Flags: uninsneveruninstall
Source: "msado20.tlb"; DestDir: "{sys}"; CopyMode: alwaysskipifsameorolder; Flags: uninsneveruninstall regtypelib
Source: "Msbind.dll"; DestDir: "{sys}"; CopyMode: alwaysskipifsameorolder; Flags: uninsneveruninstall regserver
Source: "Msdatgrd.ocx"; DestDir: "{sys}"; CopyMode: alwaysskipifsameorolder; Flags: uninsneveruninstall regserver
Source: "Msstdfmt.dll"; DestDir: "{sys}"; CopyMode: alwaysskipifsameorolder; Flags: uninsneveruninstall regserver
Source: "Msvbvm60.dll"; DestDir: "{sys}"; CopyMode: alwaysskipifsameorolder; Flags: uninsneveruninstall regserver
Source: "Scrrun.dll"; DestDir: "{sys}"; CopyMode: alwaysskipifsameorolder; Flags: uninsneveruninstall regserver
Source: "msjt4jlt.dll"; DestDir: "{sys}"; CopyMode: alwaysskipifsameorolder; Flags: uninsneveruninstall regserver
Source: "msjtor35.dll"; DestDir: "{sys}"; CopyMode: alwaysskipifsameorolder; Flags: uninsneveruninstall regserver

файлик: Msdatgrd.ocx — что это по твоему? smile.
В этом списке всё, что надо для адо и jet 3.51. Я в сетуп рограммы этой мдак не включал — токо эти длл из него выковырял. Датагрид то в мдак не входит.
тлб как руками зарегить — не помню можно ли regsvr32
а длл/осх смотри по списку — если стоит «regserver» — то надо регить — а если нет — то не надо!
Про regsvr32 — ты путь к файлу который региш писал?
вот так: regsvr32 C:\winda\…\…\my_dll.dll — путь полный надо.
Причём имена папок там длинные не поддерживаются — если больше 7 букв — то оставляеш токо 5 букв и тильду (~) с единичкой (myfolder = myfol~1).
а адо то в мдак точно входит — его руками не надо если мдак установил.

Вобчем тебе датагрид надо зарегистрировать(Msdatgrd.ocx). Токо боюсь что это не всё.
Если не поможет — проверь есть ли в системе все перечисленные в списке моём компоненты. Что надо ставь и регь — или просто кидай в …\виндоуз\систем\ — если в списке на этом элементе нет ключа «regserver».
Список полный и проверен 2-мя годами smile — и до сих пор почти ежемесячно ставлю кому-то эту прогу — жалоб не было.
Добавлено @ 23:55
Ой блин — погоди! Ты с какой БД то работаеш? Я чёто решил что аксес — но потом токо понял что не видел слова этого нигде smile.
Вобчем если аксес и бд в формате аксеса 97 — то это оно. Если формат новее — то тебе надо установить JET 4.0! А если не аксес — то провайдер, однако, совсем не обязательно в мдаке твой есть smile. БД какая у тебя?

PM MAIL WWW ICQ   Вверх
ArtNeoX
Дата 8.2.2006, 20:21 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Шустрый
*

Профиль
Группа: Участник
Сообщений: 125
Регистрация: 23.10.2005

Репутация: нет
Всего: нет

kulibin, спасибо за исчерпывающий ответ. Но я уже разобрался.
Сделал вот как.
PDWizard создал MDAC_TYP.exe со всеми компанентами.
Установил его на компьютере без VB6
в папку со своей программой поместил файлы
DAO350.DLL
MSSTDFMT.DLL
VB5DB.DLL
и
REGSVR32.exe
создал bat файл со следующим содержанием.
@echo off
RegSvr32.exe DAO350.DLL
RegSvr32.exe MSSTDFMT.DLL
PAUSE

Запустил bat файл на выполнение для регистрации файлов.
Теперь все работает.

PM MAIL   Вверх
kulibin
Дата 8.2.2006, 23:39 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Бывалый
*

Профиль
Группа: Участник
Сообщений: 229
Регистрация: 9.5.2005
Где: Украина, Запорожь е

Репутация: 2
Всего: 3

Ну поздравляю smile. Но если программу будеш распространять более масштабно — то мдак этот (10Мб вроде весит) великоват — мягко выражаясь smile. А всё что нужно для его замены в моём предыдущем посте. Да и в system либы то ложить надо бы. Ну и для создания сетупов то качни что-то приличное — бат версии длл/осх не отслеживает. А руками устанавливать программы свои не гоже. Для этого есть отличные бесплатные программы.

PM MAIL WWW ICQ   Вверх
ArtNeoX
Дата 9.2.2006, 07:19 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Шустрый
*

Профиль
Группа: Участник
Сообщений: 125
Регистрация: 23.10.2005

Репутация: нет
Всего: нет

кинь ссылочку.

PM MAIL   Вверх
Exception
Дата 9.2.2006, 08:20 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Эксперт
****

Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 7
Всего: 186

Погугли «CreateInstall» — отличная вещь.

PM   Вверх
kulibin
Дата 9.2.2006, 11:35 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Бывалый
*

Профиль
Группа: Участник
Сообщений: 229
Регистрация: 9.5.2005
Где: Украина, Запорожь е

Репутация: 2
Всего: 3

Inno Setup Compiller
А в другой теме cardinal ещё какой-то писал и утверждал что он круче. Ну этот супер — мне очень нравится. Он бесплатный. Делает всё что хочеш. И освоить его очень легко. Там есть мастер и примеры скриптов. Ну и справка есть. Ну и мой кусок скрипта что я давал можеш прямо скопировать и вставить. Токо не забудь другие файлы там написать, создание ярлыков и все файлы используемые ложи в ту же папку где и скрипт лежит. Можно путь к ним указать — но лучше этого не делать — и текста больше и путь может измениться — и будеш потом искать.
Ещё говорят его русифицировать можно — т.е. чтобы при установке программы русский текст выдавал. Но у меня руки не дошли и не помню как.

PM MAIL WWW ICQ   Вверх
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) 0 Пользователей: « Предыдущая тема | VB6 | Следующая тема »

Пользовательское соглашение

Политика конфиденциальности

© Николай Павлов, Planetaexcel, 2006-2023
info@planetaexcel.ru


Использование любых материалов сайта допускается строго с указанием прямой ссылки на источник, упоминанием названия сайта, имени автора и неизменности исходного текста и иллюстраций.

Техническая поддержка сайта

ООО «Планета Эксел»

ИНН 7735603520


ОГРН 1147746834949
        ИП Павлов Николай Владимирович
        ИНН 633015842586
        ОГРНИП 310633031600071 

Понравилась статья? Поделить с друзьями:

Интересное по теме:

  • Ошибка 3704 bartender
  • Ошибка 3714 газель некст
  • Ошибка 3703 sql
  • Ошибка 3703 codesys
  • Ошибка 3702 sql server

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии