Как вставить / выбрать данные из MySQL в Excel / VBA? - PullRequest
0 голосов
/ 08 января 2020

Я пытаюсь извлечь данные из MySQL в Excel. Я видел много уроков, но все время получаю одну и ту же ошибку.

Вот мой код:

Sub consultdate()

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

Dim i As Long
Dim sqlstr As String
Dim table1 As String, table2 As String
Dim field1 As String, field2 As String
Dim rs As ADODB.Recordset
Dim vtype As Variant

server_name = "localhost"
database_name = "controle_fin"
user_id = "root"
password = "userpassword"

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"

table1 = "classe"

GoTo skipextract
Set rs = New ADODB.Recordset
sqlstr = "SELECT * FROM " & table1
rs.Open sqlstr, conn, adOpenStatic
Planilha1.Range("A1").CopyFromRecordset rs
skipextract:

On Error Resume Next
rs.Close
Set rs = Nothing
conn.Close
Set conn = Nothing
On Error GoTo 0
End Sub

Ошибка, которую я получил:

«Ошибка ODB C. Имя источника данных не найдено и драйвер по умолчанию не указан»

1 Ответ

0 голосов
/ 08 января 2020

Как правило, эта ошибка вызвана следующими причинами:

  1. Простое неправильное написание : имена драйверов ODB C должны быть написаны правильно и полностью, включая специальные персонажи. Чтобы увидеть все драйверы ODB C, откройте окно PowerShell и введите: Get-OdbcDriver | Format-Table name, platform -AutoSize, чтобы вывести таблицу, аналогичную приведенной ниже:

    name                                                   platform
    ----                                                   --------
    Microsoft Access Driver (*.mdb)                        32-bit
    Microsoft dBase Driver (*.dbf)                         32-bit
    Microsoft Excel Driver (*.xls)                         32-bit
    Microsoft ODBC for Oracle                              32-bit
    SQL Server                                             32-bit
    SQL Server Native Client 11.0                          32-bit
    ODBC Driver 13 for SQL Server                          32-bit
    SQL Server                                             64-bit
    Microsoft Access Driver (*.mdb, *.accdb)               64-bit
    Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb) 64-bit
    Microsoft Access Text Driver (*.txt, *.csv)            64-bit
    SQL Server Native Client 11.0                          64-bit
    PostgreSQL ANSI(x64)                                   64-bit
    PostgreSQL Unicode(x64)                                64-bit
    ODBC Driver 13 for SQL Server                          64-bit
    Microsoft Access dBASE Driver (*.dbf, *.ndx, *.mdx)    64-bit
    ...
    
  2. Несовместимый 32/64 бит architectures : К какому бы драйверу ODB C вы ни подключались, он должен поддерживать ту же битовую архитектуру, что и версия MS Office. Если вы используете 32-разрядную версию Office, доступны только 32-разрядные драйверы (указанные в разделе «Платформа на шаге 1»). Точно так же идет для 64-битных. Чтобы проверить, какая версия Office бит установлена ​​на Windows и Ma c, см. здесь .

  3. Проблема с разрешениями : при драйверы доступны, они могут быть недоступны текущему пользователю или группе на уровне файлов и / или папок. Это, как правило, более проблематично для систем *Unix (Linux / Ma c), а не Windows, для которых требуется обработка chmod или chown. Для Windows настройте свойства файла или папки в Проводнике для разрешений на чтение / запись / выполнение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...