Как установить строку подключения в Excel для импорта данных из SQL? - PullRequest
0 голосов
/ 18 июня 2019

Я хочу импортировать данные из 2 столбцов на SQL-сервере, я следую этому коду из http://buffalobi.com/excel/excel-vba-import-sql-server-data/, что не так?

Private Sub CommandButton2_Click()
Call CommandButton1_Click

    Dim conn As New ADODB.Connection, cmd As New ADODB.Command, rs As New ADODB.Recordset

    With conn
        .ConnectionString = _
            "Provider = Microsoft.ACE.OLEDB.12.0; " & _
            "data source=localhost; " & _
            "initial catalog=PTrails_Core_DB;" & _
            "integrated security=True;"
        .Open
    End With

и я получаю это сообщение ERROR-MSG

Ответы [ 2 ]

0 голосов
/ 26 июня 2019

Это будет делать то, что вы хотите.

Sub ImportFromSQLServer()

Dim Cn As ADODB.Connection
Dim Server_Name As String
Dim Database_Name As String
Dim User_ID As String
Dim Password As String
Dim SQLStr As String
Dim RS As ADODB.Recordset
Set RS = New ADODB.Recordset

Server_Name = "your_server_name"
Database_Name = "Northwind"
'User_ID = "******"
'Password = "****"

SQLStr = "select Field1, Field2 from dbo.TBL" 'and PostingDate = '2006-06-08'"

Set Cn = New ADODB.Connection
Cn.Open "Driver={SQL Server};Server=" & Server_Name & ";Database=" & Database_Name & ";"
'& ";Uid=" & User_ID & ";Pwd=" & Password & ";"

RS.Open SQLStr, Cn, adOpenStatic

    With Worksheets("Sheet1").Range("A1")
        .ClearContents
        .CopyFromRecordset RS
    End With

RS.Close
Set RS = Nothing
Cn.Close
Set Cn = Nothing

End Sub
0 голосов
/ 18 июня 2019

Я бы установил ConnectionString как переменную и использовал бы ее для открытия. Если это не сработает, это должна быть реальная ссылка, на которую вы ссылаетесь, которая вызывает проблему. Может быть, потому что он заканчивается точкой с запятой.

Dim ConnectionString as String

ConnectionString = "Provider = Microsoft.ACE.OLEDB.12.0;data source=localhost;initial catalog=PTrails_Core_DB;integrated security=True"

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