Excel VBA SQL ошибка, соединение не удалось - PullRequest
0 голосов
/ 15 мая 2018

Я получаю следующую ошибку при попытке выполнить внутренний SQL-запрос в моей электронной таблице Excel.

Ошибка 2147467259 - Ошибка метода 'Выполнить' объекта '_Connection'.

Также, когда я запускаю код с точками останова, я могу получить ошибку автоматизации.Я запрашиваю в Excel 2013 (15.0.5023.1000).

With conn_obj
    .Provider = "Microsoft.ACE.OLEDB.12.0"
    .ConnectionString = "Data Source=" & report_name & ";" & _
    "Extended Properties=""Excel 12.0 Xml;HDR=YES"";"
    .Open
End With

On Error GoTo err_SQL
SQL = query

Set rs = conn_obj.Execute(SQL)  'error here

Обновление: я заменил приведенный выше код на приведенный ниже, я получаю сообщение об ошибке

ФорматСтрока инициализации не соответствует спецификации OLE DB.

Dim sSQLString As String
Dim Conn As New ADODB.Connection
Dim mrs As New ADODB.Recordset
Dim DBPath As String, sconnect As String

Let DBPath = report_name 'Path here
Let sconnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DBPath & ";Extended Properties='text;HDR=YES;';"

Conn.Open sconnect
sSQLString = query ' query here
mrs.Open sSQLString, Conn

1 Ответ

0 голосов
/ 15 мая 2018

не могли бы вы попробовать изменить ниже

 "Extended Properties=""Excel 12.0 Xml;HDR=YES"";"

на

  "Extended Properties='Excel 12.0 Xml;HDR=YES';"

, если не сообщите, что report_name равно.

или попробуйте следующее:

    Dim sSQLString As String
Dim Conn As New ADODB.Connection
Dim mrs As New ADODB.Recordset
Dim DBPath As String, sconnect As String
Let DBPath = "" 'Path here
Let sconnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DBPath & ";Extended Properties='text;HDR=YES;';"
Conn.Open sconnect
sSQLString = "" ' query here
mrs.Open sSQLString, Conn
...