Страницы: 1
RSS
Конструктор получения данных
 
Добрый день!
Помогите, пожалуйста, придумать решение задачи или подскажите, где можно найти соответсвующую информацию.

Есть excel-файл с подключением к базе данных (ms sql server) - в свойствах подключения стоит тип команды SQL, текст команды выглядт так:
select * from table
Таблица огромна, десятки миллионов записей. В таблице лежат продажи.
Сводные отчеты с группировками уже есть, но нужна возможность получать детализацию до продажи (за большой период времени) для пользователей, которые не пишут sql-запросы.
При сохранении всей таблицы с последующей классической фильтрацией возникает ряд проблем, связанный с огромным размером файла.

Я хочу сделать следующее:
Человек в excel нажимает набор фильтров/кнопок (например, продажи за апрель 2018 года, в городе Уфа), строка подключения меняется на select * from table where year = '2018' and month = 'Апрель' and city = 'Уфа'.

Таким образом, и файл весит мало, и пользователь получает максимальную детализацию нажав пару кнопок и подождав одну минуту.

Подскажите, пожалуйста, как реализовать эту задумку макросами?
Или, может, вы подскажее более эффективный способ решения задачи?
 
Ings,
1
Цитата
Ings написал:
строка подключения меняется на select *
это Command , а не Connection,
2. Чем осуществляется запрос?
2.1 Если MS Query, то в нем есть встроенный механизм передачи параметров или прямо из ячеек или запросом,  и прописать желаемое элементарно. При этом можно предусмотреть авто рефреш.
2.2. Если VBA , то естественно нужно в коде прописать изменений строки запроса.
2.3 даже для 2.1 иногда удобнее менять строку запроса через VBA
2.4 PowerQuery
....
3. пример покажете?
По вопросам из тем форума, личку не читаю.
 
БМВ, MS Query, скриншот в приложении.
Подскажите, как использовать встроенный механизм, о котором Вы пишите? Где можно подробнее об этом почитать?

Пример, к сожалению, дать не могу (политика безопасности компании).  
 
возможно для начала этого хватит,

 
По вопросам из тем форума, личку не читаю.
 
БМВ, это то, что мне нужно, только в Вашем случае подключение идет к access, а у меня к ms sql server.
Подскажите, пожалуйста, как решить задачу в моём случае?
 
Все действия те же, просто немного иная строка коннекта, но её вам трогать не нужно. Обратите внимание, как параметр выглядит в строке запроса и чтоб не ломать , лучше тут не менять, а пользоваться мастером построения. Под рукой есть только это пример, но базы уже нет :-)
 
По вопросам из тем форума, личку не читаю.
 
БМВ, а можете посоветовать, где подробнее про это почитать / посмотреть?
 
https://yandex.ru/yandsearch?text=MSquery%20microsoft&from=os&lr=2&redircnt=1523280175.1
и https://support.office.com/ru-ru/article/%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%B8%­D0%B5-%D0%...
и https://support.microsoft.com/ru-ru/help/136699/description-of-the-usage-of-joins-in-microsoft-query
и ......

Я больше не знаю ресурсов.  
Изменено: БМВ - 09.04.2018 16:26:16
По вопросам из тем форума, личку не читаю.
 
БМВ, спасибо большое!
 
Как вариант PowerQuery - очень крутая штука и доступна всем. Но нужна Pro версия Excel, чтобы все функции работали. Универсальна для 2010/2013/2016(встроена)/PowerBI(встроена).

https://www.youtube.com/watch?v=8IWrtwMb03s
C 1:57 по 5:20 как подключиться к SQL database. На английском, но там всё сопровождается видеорядом, что куда нажимать и вводить.

https://www.youtube.com/watch?v=gK2yBpiITvI&index=14&list=PLrRPvpgDmw0m3ohSvgwoHvd0KO8QsQdiK&t=2s
Файл пример Start
Файл пример Finish

Тоже на английском, и то же всё наглядно. Как из с листа Ексель можно задать параметры, которые будет обрабатывать PowerQuery при создании запроса к базе данных. Т.е. данный параметр пользователь может задавать сам прямо в книге. Главное, чтобы вы настроили его обработку в PowerQuery.

Надеюсь разберетесь.
 
VasiliePavlov, подскажите, пожалуйста, PRO версия excel должна стоять и у пользователей, которые этим впоследствии будут пользоваться?
 
Ings,
PowerQuery - доступна и для стандарта, а вот PowerPivot только в про.
 
По вопросам из тем форума, личку не читаю.
 
БМВ, спасибо
 
Цитата
БМВ написал: PowerQuery - доступна и для стандарта, а вот PowerPivot только в про.
Это да, но функционал будет не полный, и на сколько я понял в плане именно интерфейса не все кнопки будут. А вот с точки зрения языка запросов M, ограничений думаю нет.

Возможно пользователям для уже настроенного запроса, где они будут только обновлять хватит и для стандарта. А вот Вам Ings как создателю запросов желательно запускать из Pro.
Изменено: VasiliePavlov - 10.04.2018 21:37:41
 
Цитата
VasiliePavlov написал:
но функционал будет не полный, и на сколько я понял в плане именно интерфейса не все кнопки будут.
ну это дезинформация. PowerQuery не урезается. Интерфейс может чуть отличаться, да. Но надо своевременно обновлять надстройку отдельно от офиса и тогда функционал будет весь.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий Щербаков, только хотел написать, что не нахожу разницы между 2013std и 2016pro в этом плане. Просто даже самому производителю дороже поддерживать два разных продукта.
По вопросам из тем форума, личку не читаю.
 
Цитата
Дмитрий Щербаков написал: ну это дезинформация.
Не буду спорить, просто столкнулся на работе с тем, что сотруднику поставили надстройку, у него был Excel 2013 Standard, я же работаю в PRO. Мне нужно было ему показать какое-то действие в этой надстройке. И когда сел показывать увидел, что не все коннекторы были. Все кнопки не проверял, но показалось, что и не все кнопки преобразования были в интерфейсе.

Ну, значит ошибся.
 
Это зависит от версии надстройки, а не от версии Офиса. Я работаю в офисе 2016 с обновлениями от сентября 2017 года, и регулярно сталкиваюсь с сотрудниками у которых казалось бы тот же офис но с обновлениями от ноября 2016. Так вот это вообще 2 разных Power Query если с ним работать в "кнопочном режиме". если же делать скрипты прямо в редакторе то разницы практически не заметил.
Вот горшок пустой, он предмет простой...
Страницы: 1
Наверх