Добрый день! Пробую подключиться к серверу, получаю ошибку: data source name not found and no default driver specified
Код
Option Explicit
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Public Sub PullData()
Dim iColumn As Integer
Dim wsData As Worksheet
Call CreateConnection("SELECT * From Table1")
Set wsData = ThisWorkbook.Worksheets("PullData")
With wsData
.Cells.ClearContents
'Pull data
.Range("A3").CopyFromRecordset rst
'Pull Fields Name
For iColumn = 1 To rst.Fields.Count
.Cells(2, iColumn).Value = rst.Fields(iColumn - 1).Name
Next iColumn
End With
End Sub
Private Sub CreateConnection(ByVal sSql As String)
Dim strConn As String
Dim strPassword As String, strUserId As String
'strConn = "Provider=SQLOLEDB.1;"
strUserId = "login"
strPassword = "password"
strConn = "Provider=MSDASQL.1;"
strConn = strConn & "driver= (SQL Server);"
strConn = strConn & "Server=PC-PC\SQLEXPRESS;"
strConn = strConn & "Database=DBName;"
strConn = strConn & "uid=" & strUserId & ";"
strConn = strConn & "pwd:=" & strPassword
'Create connection to SQL Server
Set cnn = New ADODB.Connection
With cnn
.Open strConn 'Debugger указывает на ошибку в этой строке
.CursorLocation = adUseClient
End With
'Establish record so Excel can pull data
Set rst = New ADODB.Recordset
With rst
.CursorLocation = adUseServer
.Open Source:=sSql, ActiveConnection:=cnn, CursorType:=adOpenForwardOnly, _
LockType:=adLockOptimistic, Options:=adCmdText
End With
End Sub
Если проблема с драйвером помогите с ссылкой (какой скачать)
Server version: 11.0.2100 64 разрядная операционная система
Попробовал строку strConn = "Server=PC-PC\SQLEXPRESS;Database=DBName;User Id=login; Password=mypassword;" Та же ошибка. Заменил : strConn = strConn & "driver= (SQL Server);" на strConn = strConn & "driver={SQL Server};" Теперь пишет: Runtime error '-2147217843 (80040e4d)' Ошибка входа пользователя "Мой логин" Хотя под этим логином и паролем я нормально авторизуюсь через Server Management Studio
В начальном скрипте в строке 36 надо было убрать пробел перед (SQL Server) И в строке 40 strConn = strConn & "pwd:=" & strPassword удалить ":" после pwd Вроде заработало, Всем спасибо за советы