Запрос MySQL Table с Excel VBA, ODBC Connection - PullRequest
0 голосов
/ 25 октября 2018

У меня возникла небольшая проблема с Microsoft Excel при попытке получить значения из таблицы MySQL 8.0.У меня есть некоторый код (ниже), который я получил из сети, но получаю сообщение об ошибке.
Я новичок в этом, поэтому мне нужно немного помочь.

Яв Windows 10 с 64-разрядным компьютером.
Временная шкала:
→ Я загрузил MySQL неделю назад, получил версию 8.0 рабочей среды и установил соединитель (Connector / ODBC 8.0.12 - X64).
→ Я создал схему под названием sap в MySQL Workbench
→ Я создал таблицу в sap с именем дисперсия , заполненную данными
Все идет нормально.
Затем я загружаю Excel, получаю «Библиотеку объектов Microsoft ActiveX 6.1» и «Библиотеку объектов Microsoft Forms 2.0», создаю модуль и вставляю следующий код:

Sub MySQL()

Dim conn As New ADODB.Connection
Dim SQL As String
Dim rs As ADODB.Recordset

Set conn = New ADODB.Connection

conn.Open "DRIVER={MySQL ODBC 8.0 Driver}" _
& ";SERVER=" & "localhost" _
& ";DATABASE=" & "sap" _
& ";USER=" & "root" _
& ";PASSWORD=" & "password" _
& ";OPTION=3"

Set rs = New ADODB.Recordset

SQL = "SELECT * FROM sap.variance;"
rs.Open SQL, conn

ThisWorkbook.Sheets(1).Range("A1").CopyFromRecordset rs

rs.Close
Set rs = Nothing

End Sub

файл находится на моем компьютере, так что localhost работает для меня, я также попытался с "127.0.0.1"
База данных (схема для MySQL) называется sap
Пользователь, которого я использую, являетсяпользователь root
И пароль - это пароль (не совсем, но я не говорю по-настоящему)

Должно работать, не так ли?И затем роковая часть:

"[Microsoft] [Диспетчер драйверов ODBC] Не найдено имя источника данных, и не указан драйвер устройства"

Отладка выделяет строку 'conn.Open ....

Что я делаю не так?

1 Ответ

0 голосов
/ 25 октября 2018

Если ваш Excel 64 бит, вам нужно MySQL odbc 64 бит.Если ваш Excel 32-битный, вам нужен ODBC 32-битный (даже ваш Windows 64-битный).

Простой способ узнать, является ли ваш Excel 32 или 64-битный, откройте Excel и диспетчер задач.На вкладке Processus проверьте, имеет ли Excel (32-битный) суффикс.

...