Для того что бы получить доступ к MySQL из VBA нам понадобится не так уж много:
Set oConn = New ADODB.Connection
oConn.Open "DRIVER={MySQL ODBC 3.51 Driver};" & _
"SERVER=localhost;" & _
"DATABASE=testdb;" & _
"UID=root;" & _
"PASSWORD=;" & _
"PORT:3306;" & _
"charset=cp1251;" & _
"Option=3;"
If oConn.State = adStateOpen Then
MsgBox "Connected! =)"
Else
MsgBox "Сan not connect... =("
End If
Первый парметр указывает на резмещение сервер. Там может быть IP-адрес, или домен,
дальше — конкретная база данных,
имя пользователя,
пароль,
порт (по умолчанию 3306),
указание кодировки excel, для того, что бы при попытки записать в utf-8 базу данных кириллицу не получились кракозябры,
последний параметр — без понятия о чем %)
Ниже пару примеров работы с базой данных.
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 user" 'собственно, запрос
cmd.CommandType = adCmdText
cmd.Execute
Set rec.ActiveConnection = oConn
rec.Open cmd
Debug.Print (rec.Fields("login").Value)
Dim lg As String
Dim ps As String
Dim fn As String
lg = "pupkin"
ps = "qwerty"
fn = "Вася Пупкин"
cmd.CommandText = "INSERT INTO user (login, password, full_name) VALUES ('" & lg & "', '" & ps & "', '" & fn & "')"
cmd.Execute
- В References... vba-проекта добавить библиотеку Microsoft ActiveX Data Objects 6.1 Library
- Скачать и установить подходящей для вашей версии операционной системы ODBC драйвер. Скорее всего подойдет MySQL ODBC 3.51 Driver. Скачать этот драйвер можно с сайта MySQL: http://dev.mysql.com/downloads/connector/odbc/3.51.html#downloads
- Собственно, попробовать подключиться к БД:
Set oConn = New ADODB.Connection
oConn.Open "DRIVER={MySQL ODBC 3.51 Driver};" & _
"SERVER=localhost;" & _
"DATABASE=testdb;" & _
"UID=root;" & _
"PASSWORD=;" & _
"PORT:3306;" & _
"charset=cp1251;" & _
"Option=3;"
If oConn.State = adStateOpen Then
MsgBox "Connected! =)"
Else
MsgBox "Сan not connect... =("
End If
Первый парметр указывает на резмещение сервер. Там может быть IP-адрес, или домен,
дальше — конкретная база данных,
имя пользователя,
пароль,
порт (по умолчанию 3306),
указание кодировки excel, для того, что бы при попытки записать в utf-8 базу данных кириллицу не получились кракозябры,
последний параметр — без понятия о чем %)
Ниже пару примеров работы с базой данных.
Получение данных из базы данных:
Set cmd = New ADODB.Command
Dim rec As ADODB.Recordset 'переменная в которой будет результат запроса
Set rec = New ADODB.Recordset
Set cmd.ActiveConnection = oConn 'указываем соединение из примера выше
cmd.CommandText = "select * from user" 'собственно, запрос
cmd.CommandType = adCmdText
cmd.Execute
Set rec.ActiveConnection = oConn
rec.Open cmd
Debug.Print (rec.Fields("login").Value)
Отправка данных в базу данных:
Dim ps As String
Dim fn As String
lg = "pupkin"
ps = "qwerty"
fn = "Вася Пупкин"
cmd.CommandText = "INSERT INTO user (login, password, full_name) VALUES ('" & lg & "', '" & ps & "', '" & fn & "')"
cmd.Execute