Ошибка автоматизации при запуске скрипта VBA в Excel - PullRequest
4 голосов
/ 27 марта 2010

Я получаю сообщение об ошибке автоматизации при запуске кода VBA в Excel 2007. Я пытаюсь подключиться к удаленной базе данных SQL Server и загрузить данные из Excel в SQL Server.

Я получаю ошибку,

«Ошибка времени выполнения -2147217843 (80040e4d) ': ошибка автоматизации».

Я проверил сайт MSDN, и он предположил, что это может быть связано с ошибкой, связанной с провайдером sqloledb, и один из способов уменьшить это - использовать ODBC. Ну, я изменил строку подключения, чтобы отразить поставщика ODBC и связанные параметры, и я все еще получаю ту же ошибку.

Вот код с ODBC в качестве поставщика:

Dim cnt As ADODB.Connection
Dim rst As ADODB.Recordset
Dim stSQL As String
Dim wbBook As Workbook
Dim wsSheet As Worksheet
Dim rnStart As Range



Public Sub loadData()
     'This was set up using Microsoft  ActiveX Data Components version 6.0.

     'Create ADODB connection object, open connection and construct the connection string object.
     Set cnt = New ADODB.Connection
     cnt.ConnectionString = _
     "Driver={SQL Server}; Server=onlineSQLServer2010.foo.com; Database=fooDB Uid=logonalready;Pwd='helpmeOB1';"

    cnt.Open

    On Error GoTo ErrorHandler

    'Open Excel and run query to export data to SQL Server.

     strSQL = "SELECT * INTO SalesOrders FROM OPENDATASOURCE('Microsoft.ACE.OLEDB.12.0',   & _
    "'Data Source=C:\Database.xlsx; Extended Properties=Excel 12.0')...[SalesOrders$]"

    cnt.Execute (strSQL)

    'Error handling.
ErrorExit:
     'Reclaim memory from the connection objects
     Set rst = Nothing
     Set cnt = Nothing

   Exit Sub

ErrorHandler:
   MsgBox Err.Description, vbCritical
   Resume ErrorExit


   'clean up and reclaim memory resources.
    cnt.Close
    If CBool(cnt.State And adStateOpen) Then
    Set rst = Nothing
    Set cnt = Nothing

    End If

End Sub

1 Ответ

4 голосов
/ 18 апреля 2010

Из ответов на ваш пост (и ваш) кажется, что ваша строка подключения неисправна? Строки подключения могут вызвать настоящую головную боль. Я знаю. Попробуйте подход Роберта Гелба: http://www.vbrad.com/article.aspx?id=81 У меня работает каждый раз.

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