Импорт данных с сервера Microsoft SQL в Excel - PullRequest
0 голосов
/ 28 февраля 2020

Я пытаюсь импортировать данные с сервера SQL в Excel. Я знаю, как импортировать таблицу с сервера SQL в Excel. Что я не знаю, так это как я могу ввести условие, чтобы SQL Сервер (или Excel?) Понимал, что я хочу импортировать только те данные, которые имеют условие (т.е. создать предложение where в T- SQL ).

Например: я знаю, как импортировать select * from table1, но я хочу знать, как импортировать select * from table1 where condition = XXX.

Что немного затрудняет то, что мне нужно связать условие с ячейкой Excel. Мне нужно будет ввести значение в ячейку Excel (скажем, A1), и я хочу, чтобы в этом случае запрос мог прочитать значение из ячейки A1 в качестве условия. Это возможно?

Предпочтительно, я хочу импортировать данные с SQL сервера в определенную ячейку в Excel. Я должен написать SQL запрос, который возвращает ОДИН выход и поместить его в ячейку в Excel. Это возможно?

Я не знаю, куда написать или вставить этот запрос T- SQL.

1 Ответ

0 голосов
/ 02 марта 2020

Это будет делать то, что вы хотите. Просто измените очевидные имена объектов / ссылки.

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 * from dbo.TBL where ID = '1'" 'and PostingDate = '2020-01-01'"

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...