Страницы: 1
RSS
Подключение библиотеки через VBA
 
Не получается скриптом подключить библиотеку для работы с MySQL
Код
Dim s As String
s = "C:\Program Files\Common Files\System\ado\msado15.dll"
ThisWorkbook.VBProject.References.AddFromFile s
    Dim oConn As Object
    Set oConn = New ADODB.Connection
    
    
    oConn.Open "DRIVER={MySQL ODBC 3.51 Driver};" & _
        "SERVER=localhost;" & _
        "DATABASE=pprint;" & _
        "UID=root;" & _
        "PASSWORD=;" & _
        "PORT:3306;" & _
        "charset=cp1251;" & _
        "Option=3;"
 'Ïîëó÷åíèå äàííûõ èç áàçû äàííûõ
        Dim cmd As ADODB.Command 
    Set cmd = New ADODB.Command
    
    Dim rec As ADODB.Recordset 
    Set rec = New ADODB.Recordset
    Set cmd.ActiveConnection = oConn 
    cmd.CommandText = "SELECT * FROM tools  WHERE IDCUT= '" & mstr & "'" 
    cmd.CommandType = adCmdText
    cmd.Execute
    rec.Open cmd

    With rec

        
    Distorsia = Replace(.Fields("HDist").Value, ",", ".")
    Zub = .Fields("zub").Value
        DPrint = Replace(.Fields("HPrint").Value, ",", ".")
    Polimer = Replace(.Fields("HPolimer").Value, ",", ".")

        'äëÿ ïîëèìåðà 1.7
        Polimer17 = Replace(.Fields("Hpolimer_17").Value, ",", ".")
        Distorsia17 = Replace(.Fields("Hdist_17").Value, ",", ".")
    Vsheet = Replace(.Fields("Vsheet").Value, ",", ".")

        HCountItem = .Fields("HCountItem").Value
    VCountItem = .Fields("VCountItem").Value

    End With

Пробую напрямую dll добавить.
Код
Dim s As String
s = "C:\Program Files\Common Files\System\ado\msado15.dll"
ThisWorkbook.VBProject.References.AddFromFile s
Где ошибка?
 
Цитата
Alex_Dom написал:
Где ошибка?
В том наверно, что незачем её добавлять. Это системная библиотека и подключения отдельного не требует. Нужно что было ODBC драйвера были установлены.
По вопросам из тем форума, личку не читаю.
 
Цитата
Alex_Dom написал:
Не получается
Цитата
Alex_Dom написал:
Где ошибка?
Вам виднее - Вы нам ни строку ошибки, ни её текст не говорите...
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Если я через референцес подключаю, то всё ок.
https://yadi.sk/i/CYNeWJ0QmXTzMg
Но мне нужно подключать не вручную, а через скрипт.
Ошибка:
https://yadi.sk/i/xEu4Q3Lhu_Ysuw
Изменено: Alex_Dom - 20.08.2019 14:10:44
 
Вам её вообще можно не подключать, а использовать позднее связывание:
Код
Dim oConn As Object
Set oConn = CreateObject("ADODB.Connection")
     
     
    oConn.Open "DRIVER={MySQL ODBC 3.51 Driver};" & _
        "SERVER=localhost;" & _
        "DATABASE=pprint;" & _
        "UID=root;" & _
        "PASSWORD=;" & _
        "PORT:3306;" & _
        "charset=cp1251;" & _
        "Option=3;"
        Dim cmd As Object 'ADODB.Command 
    Set cmd = CreateObject("ADODB.Command")
     
    Dim rec As Object'ADODB.Recordset 
    Set rec = CreateObject("ADODB.Recordset")
    Set cmd.ActiveConnection = oConn 
    cmd.CommandText = "SELECT * FROM tools  WHERE IDCUT= '" & mstr & "'"
    cmd.CommandType = 1 'adCmdText
    cmd.Execute
    rec.Open cmd
Чуть подробнее про позднее связывание и нюансы: Как из Excel обратиться к другому приложению
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Спасибо большое. Всё заработало. Материал почитаю. Нужно разбираться
Страницы: 1
Наверх