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

На oConn.Open я получаю сообщение об ошибке

[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified

Цель проекта — сгенерировать отчет в Excel из базы данных SQL. Это первый раунд, чтобы проверить концепцию и посмотреть, насколько обширной мы можем ее сделать. Сохраненный процесс работает, я проверил в SQL.

Я проверил наличие библиотеки Microsoft ActiveX Data Objects 6.1. Я знаю, что есть и 2.8, но я решил использовать самое последнее расширение.

Я не знаю, нужно ли мне что-то запускать или подключать. Я запустил «Источники данных ODBC (64-разрядная версия)», однако ничего не редактировал в ODBC.

Вот весь код, который я запускаю в VBA.

Sub DataTakenFromSQL()
Dim oConn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim fld As ADODB.Field
Dim mySQL As String
Dim Row As Integer
Dim Col As Integer
Dim ws As ThisWorkbook
Set ws = ThisWorkbook
Application.ScreenUpdating = False
Set oConn = New ADODB.Connection
Set rs = New ADODB.Recordset
mySQL = "EXEC [StoredProc] @var = 'nVarChar'"
oConn.ConnectionString = "{SQL Server};" & _
  "Server=[SERVER];uid=[UN];pwd=[PW];database=[DATABASE]"
oConn.ConnectionTimeout = 90

oConn.Open

rs.Open mySQL, oConn
If rs.EOF Then
    MsgBox "No Matching Records"
    rs.Close
    oConn.Close
    Exit Sub
End If
Row = 5
Col = 1
    For Each fld In rs.Fields
    Sheet1.Cells(Row, Col).Value = fld.Name
    Col = (Col + 1)
    Next
rs.MoveFirst
Row = Row + 1
Do While Not rs.EOF
    Col = 1
    For Each fld In rs.Fields
    Sheet1.Cells(Row, Col).Value = fld
    Col = Col + 1
    Next
Row = Row + 1
rs.MoveNext
Loop
rs.Close
oConn.Close    
End Sub

следует отредактировать, чтобы удалить тег «tsql».

jamie 29.05.2019 20:21

Невозможно проверить, но я думаю, что ваша строка подключения должна выглядеть примерно так, поскольку в ней отсутствует спецификация драйвера: Driver = {SQL Server};Server=myServerAddress;Database=myDataBase;Uid=myUse‌​rname;Pwd=myPassword‌​;

Fink 29.05.2019 23:16

Финк, ты был прав. Спасибо вам за помощь. После этого у меня была еще одна ошибка, но это было довольно простое исправление (среда). Спасибо большое.

Joe Wolf 31.05.2019 21:18
Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
1
3
1 055
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Отсутствовал код:

 Driver = {SQLServer};Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;

как указал Финк (пользователь: 167478). После добавления мне удалось успешно запустить хранимую процедуру.

Другие вопросы по теме