powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Кодировка в XL при SQL запросе к базе MySQL
7 сообщений из 7, страница 1 из 1
Кодировка в XL при SQL запросе к базе MySQL
    #35573620
Фотография strike1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго всем времени суток. Господа программеры, помогите мудрым советом. Суть проблемы в следующем. Пишу на VBA под XL. Подключаюсь к базе MySQL через XL. Вытягиваю данные в неправильной кодировке сикарашки короче на листе в Экселе. Даю запрос в MySQL выводит русский шрифт нормально. КАк в VBA указать кодировку. Кусок кода таков:

Dim test As New ADODB.Connection
Dim rs As New ADODB.Recordset

Set test = New ADODB.Connection

test.Open "Driver={MySQL ODBC 5.1 Driver};Server=localhost;DATABASE=test;" & _
"User=root;Password=root;PORT=3306;OPTION=3;"
test.CursorLocation = adUseClient

rs.Open "select kod, f, i, o, inn from exam" & _
" where kod='some_code'", test, adOpenStatic, adLockBatchOptimistic, adCmdText
rs.ActiveConnection = Nothing

ActiveSheet.Range("A2").CopyFromRecordset rs
ActiveSheet.Columns("A:I").AutoFit
....
...
Рейтинг: 0 / 0
Кодировка в XL при SQL запросе к базе MySQL
    #35573625
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лучше спроси на MySQL'ном форуме умеет его ODBC драйвер делать перекодировку или нет. Если не умеет, то вместо CopyFromRecordset прийдется писать цикл, вручную пробегать по всему резалтсету и вручную же конвертировать поля перед помещением их на лист.
...
Рейтинг: 0 / 0
Кодировка в XL при SQL запросе к базе MySQL
    #35573633
Фотография strike1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну я так предполагаю, что дето здесь надо копать:

test.Open "Driver={MySQL ODBC 5.1 Driver};Server=localhost;DATABASE=test;" & _
"User=root;Password=root;PORT=3306;OPTION=3;" задать мож надо параметр.

Вот короче, как я файл подгружал в XL:
path_to_f = "TEXT;" & path_to_f & file_name_f

Range(dest).Select

With ActiveSheet.QueryTables.Add(Connection:=path_to_f, Destination:=Range(dest))
....
.TextFilePlatform = 866 // кодировка
.TextFileStartRow = 1
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
.....

End With

Думаю з запросом таже байда, тока пока не могу найти инфы!!!!
...
Рейтинг: 0 / 0
Кодировка в XL при SQL запросе к базе MySQL
    #35573697
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
strike1Ну я так предполагаю, что дето здесь надо копать:
....
Думаю з запросом таже байда, тока пока не могу найти инфы!!!!Неправильно предполагаешь. Поэтому и не найдешь.
Это совершенно разные механизмы и то что один из них умеет, второй уметь не обязан.
...
Рейтинг: 0 / 0
Кодировка в XL при SQL запросе к базе MySQL
    #35573735
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
" where kod='some_code'", test, adOpenStatic, adLockBatchOptimistic, adCmdText
rs.ActiveConnection = Nothing
ActiveSheet.Range("A2").CopyFromRecordset rs
А не влияет сброс коннекта на содержимое рекордсета?

Попробуй еще загнать рекордсет в массив Variant
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
    rs.MoveFirst
    myArr = rs.GetRows()
    For i = LBound(myArr, 1 ) To UBound(myArr,  1 )
        For j = LBound(myArr, 2 ) To UBound(myArr,  2 )
           Cells(i,j).Value=myArr(i, j)
        Next
    Next
В крайнем случае, если врет драйвер ODBC, - этим путем и перекодируешь...
...
Рейтинг: 0 / 0
Кодировка в XL при SQL запросе к базе MySQL
    #35573736
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
* Cells(i+ 1 ,j+ 1 )
...
Рейтинг: 0 / 0
Кодировка в XL при SQL запросе к базе MySQL
    #35575843
Фотография strike1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ok. Пасиба за ответы. Попробую ...
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Кодировка в XL при SQL запросе к базе MySQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]