Доброго времени суток, Планетяне! Хочу получать данные из запроса PQ, не выгружая его в таблицу на лист. Подскажите, пожалуйста, как это сделать (кодом на VBA) на примере запроса "Запрос" со столбцами "Дата", "Имя" и "КОЛ-ВО".
Иными словами: как забрать в массив VBA данные (таблицу) из запроса Power Query, не выгружая его на лист (создать только соединение)?
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
А в чем проблема макросом выгрузить в таблицу - забрать её в массив и удалить таблицу? Если результат содержит больше миллиона строк то создать сводную - выгрузить результат запроса в кэш сводной - забрать его в массив и удалить кэш. Лично я вижу это примерно так.
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Вот здесьАндрей VG давал ссылку на методы работы с Power Query при помощи VBA. Покопайтесь, может поможет. Но подозреваю, что напрямую вы вряд ли сможете получить данные из запроса, только опосредованно через создание/удаление объектов, в которые запрос умеет сливать данные.
PooHkrd, спасибо! Попробую что-то вроде ThisWorkbook.Queries("Запрос").Copy
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Sertg, сводную из подключения к запросу (без выгрузки его на лист) строил, с занесением в модель данных тоже строил (дольше обновляется), но только сводная мне не нужна, т.к. это тоже своего рода "выгрузка" на лист. Ищу способ забрать данные из запроса (после всех шагов) в массив внутри кода.
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Jack Famous, а в чем принципиальность такого подхода? Почему нельзя забрать и преобразовать те же данные из того же источника сразу макросом? Зачем здесь посредник?
PooHkrd, я снова не понимаю, про какой вы источник (подключение/запрос?) и каких посредников говорите… Прошу пример.
Дело в том, что сейчас мне приходится выгружать запросы на листы, что плодит "рабочие листы" (не страшно) и постоянно при обновлении перекидывает пользователя на листы с этими запросами (неприятно и неудобно обходить дополнительными макросами). Да думаю и пошустрее бы было как раз без "посредника" в виде таблицы на листе.
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Зачем получать данные запросами, и потом извращаться при помощи VBA, если то же самое можно реализовать сразу макросами? Или зачем нужно извращаться с VBA, если результат можно сразу получить при помощи запроса? Я это имел ввиду.
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Андрей VG, здравствуйте! Большое вам спасибо за проделанную работу! Отлегло буду макросы юзать и ждать, когда, наконец, "наладят связь" — надеюсь, что это вообще возможно.
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Slavik Sidorov, нету здесь решения, до выгрузки запроса на лист/в модель данных не существует. Поэтому сначала выгрузка, потом забирайте куда надо, потом удаляйте. Что именно напрягает в необходимости выгрузки? Ну, если совсем уж надо, то можно выгрузить результат запроса в csv, это в самом запросе. Но даже для этого итоговый шаг запроса должен выгружать хоть что-то на лист/модель. Иначе ничего не произойдет.
написал: Проблема все еще актуальна, подскажите пожалуйста нашлось ли решение? Напомню необходимо выгрузить данные из Power Query запроса например в ListBox
Если я правильно понял проблему, то можно кликнуть на запросе и выбрать "Загрузить в" и там выбрать "только создать подключение"