|
|
|
Программное редактирование SQL запроса сводной таблице Excel к FireBird (VBA)
|
|||
|---|---|---|---|
|
#18+
Добрый день! Люди, может кто-то сталкивался с такой проблемой: Данные обрабатываются в FireBird, выводятся через ODBC подключение в сводные таблицы Excel. Есть общая сводная, которая содержит полную информацию о всех филиалах. Для отправки на филиалы в сводных необходимо отсечь лишнюю информацию, оставить только информацию филиала. До перехода на FireBird использовался Access и там эта задача была решена следующим путем: макросом открывался файл, редактировалась SQL строка подключения (добавлялось условие where region="регион"), сводная обновлялась, файл сохранялся с соответствующим именем. При этом в процессе редактирование подключения менялась сама SQL, название подключения оставалось тем же, новые подключения не создавались Если источник FireBird, то 1 проблема: это например если мы взяли одну сводную, накопировали ее, перекрутили в разных разрезах, т.е. источник один, то ни в какую не хочет менять SQL. Меняет, только если в книге 1 подключение = 1 сводная, связанная с ним. 2 проблема: когда 1 подключение = 1 сводная, код смены SQL отрабатывает, но при этом остается старое подключение с полным массивом данных, а сводная подключается к новому созданному с нужной строкой с именем "подключение". При этом размер файла увеличивается. Обошел это так: сделал справочник, в котором по порядковым номерам связал сводные с одинаковыми подключениями. При запуске макрос открывает исходный файл, создает новый, копирует в него лист со сводной первого подключения, меняет строку, меняет название созданного подключения "подключение" на нужное, затем по справочнику копирует из исходного файла остальные сводные этого подключения и источник переключается на новое название (уже отредактированное подключение), затем удаляется из нового файла уже неиспользуемое исходное подключение. Далее перехожу к следующему подключению. 3. проблема: excel 2013, файлы содержат срезы, при редактировании строки подключения как будто меняется версия сводной и срезы пропадают, вручную их уже добавить в сформированном файле нельзя, пишет что сводная версии ранее 2007. Может кто-то решал подобные задачи, и у меня виденье нарезки неправильное? Строчку подключения и в Access и Firebird меняю кодом: Код: vbnet 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2014, 11:00:26 |
|
||
|
Программное редактирование SQL запроса сводной таблице Excel к FireBird (VBA)
|
|||
|---|---|---|---|
|
#18+
MelafonДанные обрабатываются в FireBird, выводятся через ODBC подключение в сводные таблицы Excel. Есть общая сводная, которая содержит полную информацию о всех филиалах. Для отправки на филиалы в сводных необходимо отсечь лишнюю информацию, оставить только информацию филиала. А почему не сделаешь простой макрос, который по названию филиала будет вытаскивать информацию ТОЛЬКО по нему и строить нужные сводные? К тому-же - я бы вытаскивал данные по филиалу на лист, как плоская таблица, а потом на основе этих данных строил своды и отправлял филиалу, что-бы они могли при необходимости построить свои своды. Но это только в том случае, если хватает строк на листе. Мне не хватает :( P.S. И мне кажется что это тема для этой ветки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2014, 11:18:58 |
|
||
|
Программное редактирование SQL запроса сводной таблице Excel к FireBird (VBA)
|
|||
|---|---|---|---|
|
#18+
вытягивать плоскую таблицу и строить сводные не вариант, в сводных используется очень много форматирования + в файле может быть несколько подключений. Данные одного филиала содержат более 150 000 строк, т.е. в Excel 2013 на лист влезет, но потом программно сделать и отформатировать сводную и каждый раз когда нужно внести изменения ковыряться в коде - капец, когда то таким занимался, когда из основного отчета в виде плоской сгруппированной таблицы строились аналитические сводные. Здесь хочется настроить, чтобы готовые сводные резались. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2014, 11:32:47 |
|
||
|
|

start [/forum/topic.php?fid=40&tid=1563635]: |
0ms |
get settings: |
8ms |
get forum list: |
9ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
204ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 232ms |
| total: | 511ms |

| 0 / 0 |
