Страницы: 1
RSS
sql server подключение VBA
 
Добрый день!
Пробую подключиться к серверу, получаю ошибку:
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 разрядная операционная система
Изменено: starpom - 24.12.2017 12:07:37
 
Доброе время суток
У вас ошибка в строке подключения. SQL Server connection strings
 
Попробовал строку
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
 
А так?
Код
strConn = "Driver={SQL Server};Server=PC-PC\SQLEXPRESS;Database=DBName;Uid=login; Pwd=mypassword;"
strConn = "Provider=SQLOLEDB.1;Password=mypassword;Persist SecurityInfo=True;" & _
       "User ID=login;Initial Catalog=DBName;Data Source=localhost"
Изменено: Doober - 24.12.2017 15:18:33
 
В начальном скрипте в строке 36 надо было убрать пробел перед  (SQL Server)
И в строке 40
strConn = strConn & "pwd:=" & strPassword
удалить  ":"   после pwd
Вроде заработало, Всем спасибо за советы
Изменено: starpom - 24.12.2017 15:40:22
Страницы: 1
Наверх