Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+3

Как импортировать данные с кириллицей через excel vba в mysql?

Необходимо из таблицы excel импортировать данные в mysql таблицу. Данные содержат кириллицу. На данный момент вместо слов в таблице mysql появляются всякие символы.
Вот код vba:
Sub ВБД_Щелчок ()
Dim conn As New ADODB.Connection
Dim server_name As String
Dim database_name As String
Dim user_id As String
Dim password As String
server_name = "localhost"
database_name = "work"
user_id = "root"
password = "toor"

Set conn = New ADODB.Connection
conn.Open "DRIVER={MySQL ODBC 3.51 Driver}" _
& ";SERVER=" & server_name _
& ";DATABASE=" & database_name _
& ";UID=" & user_id _
& ";PWD=" & password _
& ";OPTION=16427"

Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset

strSQL = "INSERT INTO zakupka (Data, NameLEO, NameECHD, Value, Losses) " & _
"VALUES ('" & esc(ThisWorkbook.Sheets(3).Cells(12, 3)) & "' , " & _
"'" & esc(ThisWorkbook.Sheets(1).Cells(7, 3)) & "' , " & _
"'" & esc(ThisWorkbook.Sheets(1).Cells(7, 4)) & "' , " & _
"'" & esc(ThisWorkbook.Sheets(1).Cells(7, 20)) & "' , " & _
"'" & esc(ThisWorkbook.Sheets(1).Cells(7, 21)) & "')"
Debug.Print strSQL
rs.Open strSQL, conn, adOpenDynamic, adLockOptimistic

End Sub

Function esc(txt As String)
esc = Trim(Replace(txt, "'", "\'"))
End Function

Код создания таблицы в MySQL:
CREATE TABLE `zakupka` (
`idx` INT(11) NOT NULL AUTO_INCREMENT,
`Data` DATE NOT NULL,
`NameLEO` TEXT NULL,
`NameECHD` TEXT NULL,
`Value` TEXT NULL,
`Losses` TEXT NULL,
PRIMARY KEY (`idx`)
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB
AUTO_INCREMENT=2
;

По дате
По рейтингу