Страницы: 1
RSS
Подключение к MySQL из VBA
 
Добрый день!
Хочу через vba работать с базами MySql.
Вроде все делал правильно, но никак не подключает.
В References добавил Microsoft ActiveX Data Odjects 6.0 Library
Установил MySql ODBC 8.0 Unicod Driver
И собственно сам код:
Код
Dim conn As Object
Set conn = New ADODB.Connection
conn.ConnectionString = "DRIVER={MySQL ODBC 8.0 Unicode Driver};SERVER=localhost;DATABASE=*;UID=root;PWD=*;"
conn.Open
*текущие база данных и пароль
Выдает ошибку Run-time error '-2147467259 Automation error
Буду благодарен за любой совет!
Изменено: kkrasilov - 28.05.2018 10:21:10
 
Код
DRIVER={MySQL ODBC 5.3 ANSI Driver};SERVER=SQLSRV;DATABASE=*;UID=root;PASSWORD=*;PORT:3306;charset=cp1251;Option=3;
так у меня подключается, попробуйте доп.параметры
 
https://www.connectionstrings.com/mysql/
UNICODE  И option=3
По вопросам из тем форума, личку не читаю.
 
DenSyo, а библиотека Microsoft ActiveX Data Odjects 6.0 стоит?  
 
Разрядность драйвера и разрядность офиса совпадают?
 
Doober, действительно, система стояла x64, драйвер скачивал так же x64, а офис по умолчанию стоял x32.
Переустановил офис с новой разрядностью, все работает!
Doober, спасибо!
Тему можно закрывать!
Нашел ещё хорошую статью по этой теме, мало ли кому понадобится - http://bienabee.freshdesk.com/support/solutions/articles/1000017835-connecting-to-mysql-in-excel-doe...
 
Добрый день!

Столкнулся с той же проблемой, только ошибка другая:


Код выглядит вот таким образом
Код
Dim conn As Object
Set conn = New ADODB.Connection
conn.ConnectionString = "DRIVER={MySQL ODBC 8.0 ANSI Driver};SERVER=localhost;PORT:3307;DATABASE=my_db;UID=user_test;Pwd=12345;Option=3;"
conn.Open
Пишет что доступ пользователю запрещён, хотя в настройках самой БД пользователю user_test доступ предоставлен.
Разрядность системы, офиса и драйвера совпадает. Необходимая библиотека подключена.

Помогите пожалуйста разобраться.
Изменено: Ametist69 - 28.06.2019 11:26:53
 
Цитата
Ametist69 написал:
user_test доступ предоставлен.
Сомневаюсь я однако если пароль верный.
С какого носта доступ разрешен?
localhost , %
 
Проблема решилась, большое спасибо!
Если кому пригодится, вот рабочий код:
Код
Sub Подключение()

Dim cnnConnect As ADODB.Connection
Dim rstRecordset As ADODB.Recordset

Application.ScreenUpdating = False
Application.EnableEvents = False
Set cnnConnect = New ADODB.Connection
Set rstRecordset = New ADODB.Recordset
cnnConnect.Open "DRIVER={MySQL ODBC 8.0 Unicode Driver};SERVER=localhost;DATABASE=my_db;UID=user_test;PASSWORD=123456;PORT:3306;"
rstRecordset.Open Source:="SELECT * FROM my_table", ActiveConnection:=cnnConnect, CursorType:=adOpenDynamic, LockType:=adLockReadOnly, Options:=adCmdText
With Sheets(1).QueryTables.Add( _
        Connection:=rstRecordset, _
        Destination:=Sheets(1).Range("A1"))
        .Name = "Test_request"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = True
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = True
        .Refresh BackgroundQuery:=False
End With
rstRecordset.Close
cnnConnect.Close
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
 
Добрый день. Подскажите пожалуста. При использовании Вашего кода выжает ошибку что на найдём источник и драйвер. Что делать?  
Страницы: 1
Наверх