Используя VBA и SQL, могу ли я сослаться на заголовок столбца Excel в запросе? - PullRequest
0 голосов
/ 30 октября 2018

Я пишу SQL-запрос, который проверяет значения Excel в базе данных. Во время работы макроса Excel я создаю рабочую таблицу 2 (ws2) и должен выполнить запрос, который проверяет, каждое ли значение в столбце F = table.number.

Я знаю, что могу использовать Cells, чтобы получить одно значение и обернуть его в цикл for, но это требует слишком много обработки и требует слишком много извлечений SQL. Столбец в ws2 называется " REFERENCE " и содержит все данные под ним. В идеале я хотел бы написать SQL-запрос вроде:

select * from table where ws2.REFERENCE = table.number

Есть ли способ сделать это?

1 Ответ

0 голосов
/ 01 ноября 2018

Полагаю, вы можете сделать сравнение в Excel или в SQL Server, верно. Я думаю, что одно из жизнеспособных решений - импортировать данные с SQ Server, включая имена полей, и сравнить это с тем, что у вас уже есть в Excel.

Sub Conn2SQL()

    Dim cnn1 As New ADODB.Connection
    Dim mrs As New ADODB.Recordset
    Dim iCols As Integer

    Set cnn1 = New ADODB.Connection
      cnn1.ConnectionString = "driver={SQL Server};server=MyDBServer;uid=MyuserID;pwd=mypassword;database=MyDB"
      cnn1.ConnectionTimeout = 30
      cnn1.Open

    SQry = "use MyDB select * from TableName"

    mrs.Open SQry, cnn1

    For iCols = 0 To mrs.Fields.Count - 1
        Worksheets("Sheet2").Cells(1, iCols + 1).Value = mrs.Fields(iCols).Name
    Next

    Sheet2.Range("A2").CopyFromRecordset mrs

    mrs.Close
    cnn1.Close

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