Получить / создать набор записей из данных SQL Server в Excel vba
Я хочу получить доступ / получить / создать набор записей из SQL Server в Excel vba.
Я пробовал следующие методы, но они возвращают ошибку.
Код 1:
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim sConnString As String
sConnString = "Provider=sqloledb; Server=192.168.0.204; Database=REPORTdb2"
Set Conn = New ADODB.Connection
Set rs = New ADODB.Recordset
conn.Open sConnString
Set rs = conn.Execute("select * from Table1;")
на линии conn.Open sConnString
возникает ошибка:
Неверная авторизация
Кодекса2:
sConnString = "Provider=SQLOLEDB;Data Source=192.168.0.204;" & _
"Initial Catalog=ReportDB2;" & _
"Integrated Security=SSPI;"
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
conn.Open sConnString
Set rs = conn.Execute("SELECT * FROM Table1;")
Выдает ошибку
Невозможно сгенерировать контекст SSPI
1 ответ
Следующий код требует в VBE ссылку на Microsoft Active Data Objects 2.8 Library
или выше:
Public Sub AdoTestConnection()
Dim conServer As ADODB.Connection
Dim rstResult As ADODB.Recordset
Dim strDatabase As String
Dim strServer As String
Dim strSQL As String
Set conServer = New ADODB.Connection
conServer.ConnectionString = "PROVIDER=SQLOLEDB; " _
& "DATA SOURCE=192.168.0.204; " _
& "INITIAL CATALOG=REPORTdb2; " _
& "User ID=sa;" _
& "Password="
On Error GoTo SQL_ConnectionError
conServer.Open
On Error GoTo 0
Set rstResult = New ADODB.Recordset
strSQL = "set nocount on; "
strSQL = strSQL & "select * from Table1;"
rstResult.ActiveConnection = conServer
On Error GoTo SQL_StatementError
rstResult.Open strSQL
On Error GoTo 0
'To copy the result to a sheet you may use the following code
'It will copy your table 'Table1' to the first sheet in your Excel file.
ThisWorkbook.Sheets(1).Range("A1").CopyFromRecordset rstResult
Exit Sub
SQL_ConnectionError:
MsgBox "Problems connecting to the server." & Chr(10) & "Aborting..."
Exit Sub
SQL_StatementError:
MsgBox "Connection established. Yet, there is a problem with the SQL syntax." & Chr(10) & "Aborting..."
Exit Sub
End Sub
С включенной обработкой ошибок для
- установление соединения с сервером SQL и
- пытается передать команду T-SQL на сервер для обработки
Вы должны быть в состоянии легко устранить проблему для подключения к серверу. Приведенный выше код вернет 1 только в случае успеха (для тестового запуска). После этого вы можете заменить команду SQL на команду, приведенную в примере выше.