Excel vba: запустить sql select поверх таблицы из внешнего соединения - PullRequest
0 голосов
/ 10 января 2019

С PowerQuery у меня есть внешнее соединение с другим файлом Excel. В результате получается таблица с несколькими полями и несколькими строками.

Теперь я хотел бы создать пользовательскую функцию, которая может быть преобразована в SQL-запрос в VBA. Пользовательская функция выглядит так:

getMe(field1,field2,field3,field4)

Это будет использоваться в VBA для установки SQL-запроса, например:

SELECT field1 FROM field3 WHERE field2='field2' and field4='field4'

После некоторых исследований я нашел что-то вроде:

With ActiveWorkbook.Connections("G4060").OLEDBConnection
    .BackgroundQuery = True
    .CommandText = Array("SELECT field1 FROM [field3] WHERE field2='field2' and field3='field3'")
    .CommandType = xlCmdSql
    .Connection = Array("A very loooong string")
End With

Я полагаю, что "Очень длинная строка" используется для подключения к внешнему файлу Excel. Но зачем нам это, когда таблица уже в моем файле? Я имею в виду, соединение уже сделано. У вас есть идеи, как поступить дальше? Спасибо

...