|
Динамические заголовки перекрестного запроса (возможно ли?)
|
|||
---|---|---|---|
#18+
Здравствуйте! Перелопатил многое прежде чем обратиться, видимо не способен догнать самостоятельно))) Есть простейший перекрестный запрос, но в его результате нужно вывести заголовки в виде порядковой нумерации, например С1,С2,С3,С4 и т.д. а не сами их значения. Попытался было воспользоваться св-вом "Заголовки столбцов" (ColumnHeadings), но что-то никак не выходит. Проблема в том что результирующее кол-во колумнов неизвестно и значения их всегда разные (так бы я мог просто использовать для вывода таблицу-шаблон). На просторах рунета отрыл функцию нумерации GetNextNum (иногда встречается как Numeric) и с ее помощью сделал вспомогательный запрос "q_1_counter" (в приаттаченном примере) который присваивает последовательные значения для дальнейшего вывода в результирующем перекрестном запросе "q_Вариант1" как бы скрытых значений столбцов (сама нумерация для меня особо не важна). Но появилась проблема с VBA в Acc 2010 (Sub Test) - при выполнении кода с этим запросом периодически вываливает ошибка "[q_Вариант1].[Ц***] не распознается ядром СУБД Microsoft Access как допустимое имя поля или выражение", где *** - меняющееся значение в соответстиии с работой функции GetNextNum. Хотя вручную запрос отрабатывает 100%. Где собака? Я сознаюсь, что вероятно налепил костылей и ларчик проще открывается. И если так помогите пжлст сделать перекрестный запрос без использования всяких доп.опций, чтобы вместо указанных заголовков вывелись порядковые значения. Спасибо! P.S. Воспроизвести ошибку в примере у меня самого не получилось, а саму базу выгрузить сюда не могу. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2017, 14:12 |
|
Динамические заголовки перекрестного запроса (возможно ли?)
|
|||
---|---|---|---|
#18+
kulib, вы лучше расскажите, для какой цели используется ваш запрос? Что вы делаете в коде? И почему "нужно вывести заголовки в виде порядковой нумерации, например С1,С2,С3,С4 и т.д."? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2017, 15:32 |
|
Динамические заголовки перекрестного запроса (возможно ли?)
|
|||
---|---|---|---|
#18+
kulib, Ну так создайте динамический запрос в VBA, а потом меняйте SQL текст запроса. В чём проблема? Правда получится не в буквальном смысле "перекрёстный запрос", а то, что похоже на него. Там как раз таки можете контролировать название столбцов. P.S. Ваш пример не смотрел. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2017, 15:33 |
|
Динамические заголовки перекрестного запроса (возможно ли?)
|
|||
---|---|---|---|
#18+
studierenkulib, Ну так создайте динамический запрос в VBA, а потом меняйте SQL текст запроса.Не очень удобно, замучаешься потом разбираться что-зачем и почему. Неужеле в аксе нет такой возможности создать заголовки с переименованием? Анатолий ( Киев )kulib, вы лучше расскажите, для какой цели используется ваш запрос? Что вы делаете в коде? И почему "нужно вывести заголовки в виде порядковой нумерации, например С1,С2,С3,С4 и т.д."? Чтобы стороннему юзеру результата нельзя было определить принадлежность цен к тому или другому поставщику. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2017, 15:43 |
|
Динамические заголовки перекрестного запроса (возможно ли?)
|
|||
---|---|---|---|
#18+
Вот здесь http://www.sql.ru/forum/371977/dinamicheskiy-perekrestnyy-zapros что-то похожее обсуждалось, даже Владимир Саныч поучаствовал, но я всё равно ответа на свою проблему не понял. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2017, 15:45 |
|
Динамические заголовки перекрестного запроса (возможно ли?)
|
|||
---|---|---|---|
#18+
Самое обидное, что сам запрос то отрабатывает в ручном режиме, а только в коде выдает такую ошибку ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2017, 16:04 |
|
Динамические заголовки перекрестного запроса (возможно ли?)
|
|||
---|---|---|---|
#18+
kulibАнатолий ( Киев )kulib, вы лучше расскажите, для какой цели используется ваш запрос? Что вы делаете в коде? И почему "нужно вывести заголовки в виде порядковой нумерации, например С1,С2,С3,С4 и т.д."? Чтобы стороннему юзеру результата нельзя было определить принадлежность цен к тому или другому поставщику. Хороший ответ на три вопроса. Ну, какие ответы, такие и советы... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2017, 16:08 |
|
Динамические заголовки перекрестного запроса (возможно ли?)
|
|||
---|---|---|---|
#18+
Анатолий ( Киев )Хороший ответ на три вопроса. Ну, какие ответы, такие и советы...Ну ....., я ж не знал, что всё так важно, извиняйте. 1. Есть три столбца исходной таблицы (сама таблица предварительно формируется в ходе основного цикла), которые хочу превратить в перекрестный запрос для наглядности результата (фактически для группировки данных). 2. В коде цикл, который работает для вывода этих данных. 3. В резульате не должно быть видно поля IDSELLER иначе спокойно можно определить чьи данные, а этого допустить нельзя ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2017, 16:18 |
|
Динамические заголовки перекрестного запроса (возможно ли?)
|
|||
---|---|---|---|
#18+
Кстати заметочка: на ХР в Аксе 2003 всё выполняется вчистую. Проблему наблюдаю только в Винде10 32 с Аксом 2010 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2017, 17:25 |
|
Динамические заголовки перекрестного запроса (возможно ли?)
|
|||
---|---|---|---|
#18+
kulib... 3. В резульате не должно быть видно поля IDSELLER ... Выплевывайте результат запроса на лист Excel методом CopyFromRecordset, и подписывайте столбцы как вам угодно. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2017, 18:39 |
|
Динамические заголовки перекрестного запроса (возможно ли?)
|
|||
---|---|---|---|
#18+
PredeclaredВыплевывайте результат запроса на лист Excel Именно так я и делаю когда нужно сохранить и отправить результат в экселе, но некоторые просят dbf и собственно из-за этого весь гимор. Я мог бы конечно "заставлять" макрос в шаблоне (после выгрузки в xls) пересохранять файл в dbf, но это как-то грустно. Именно хочется напрямую в dbf выгружать уже с пронумерованными именами полей. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2017, 20:16 |
|
Динамические заголовки перекрестного запроса (возможно ли?)
|
|||
---|---|---|---|
#18+
Я наверное вас запутал наличием в примере TransferSpreadSheet, но это всего лишь вариант выгрузки помимо Output. Основная проблема в том, что именно запрос прерывается в коде ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2017, 20:19 |
|
Динамические заголовки перекрестного запроса (возможно ли?)
|
|||
---|---|---|---|
#18+
kulib, может так (см. пример). Создана доп таблица с именами будущих столбцов, заполняется и чистится через код (см. VBA). Так будет быстрее исполнятся запрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2017, 06:00 |
|
Динамические заголовки перекрестного запроса (возможно ли?)
|
|||
---|---|---|---|
#18+
ПанургСоздана доп таблица с именами будущих столбцов, Уважаемые! Я справился с проблемой, правда можно сказать через ж..., но всё же. Спасибо всем, Панург благодарю!!! В итоге мучений смирился с фактом, что просто так встроенными методами преобразовать имена полей не получится. Пошел другим путем. Преобразовал промежуточный запрос "q_1_counter OLD" в два последовательных для использования имитации счетчика (из FAQ) и второй (не получилось сделать один с вложенным - начала ругаться, что не хватает параметров функции) запрос "q_1_counter2" а-ля счетчик (всё есть в примере) сделал не выборкой, а формированием таблицы (промежуточной) иначе проблемы со стеком. Получилась таблица с порядковыми значениями для столбцов результирующего запроса, которую подтянул в основной запрос, заджойнил с той же исходной таблицей и в качестве заголовков вывел номера (ну еще и строковый префикс прикрутил "Ц" для удобства) "q_Вариант3" (в примере) Вот собсна и всё. Пример из FAQ (взял второй вариант А2): Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2017, 12:09 |
|
Динамические заголовки перекрестного запроса (возможно ли?)
|
|||
---|---|---|---|
#18+
kulibPredeclaredВыплевывайте результат запроса на лист Excel Именно так я и делаю когда нужно сохранить и отправить результат в экселе, но некоторые просят dbf и собственно из-за этого весь гимор. Я мог бы конечно "заставлять" макрос в шаблоне (после выгрузки в xls) пересохранять файл в dbf, но это как-то грустно. Именно хочется напрямую в dbf выгружать уже с пронумерованными именами полей. Если вы уже выгружаете в Excel и в файле меняете заголовки столбцов, то сохранить его как DBF - одна строчка кода в этой же процедуре. Макрос в шаблоне не нужен. ИМХО, вы пошли не тем путем. Если "хочется напрямую в dbf выгружать", то средствами VBA (работа с бинарными файлами) несложно поменять имена полей в файле. А еще можно нагуглить код для работы с dbf средствами VBA напрямую (без всяких драйверов). ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2017, 14:19 |
|
Динамические заголовки перекрестного запроса (возможно ли?)
|
|||
---|---|---|---|
#18+
Анатолий ( Киев )Если вы уже выгружаете в Excel и в файле меняете заголовки столбцов, то сохранить его как DBF - одна строчка кода в этой же процедуре. Макрос в шаблоне не нужен. ИМХО, вы пошли не тем путем.К сожалению в 2010-м оффисе в экселе нет сохранения в dbf((( Анатолий ( Киев )Если "хочется напрямую в dbf выгружать", то средствами VBA (работа с бинарными файлами) несложно поменять имена полей в файле.В выгруженном файле? Как-то не очень подходяще после выгрузки опять лезть к файлу. Задача - выплюнуть данные и забыть про них, что собсна у меня и получилось. Анатолий ( Киев )А еще можно нагуглить код для работы с dbf средствами VBA напрямую (без всяких драйверов).Проблема решена и сейчас мне уже нужно решать другие, Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2017, 14:33 |
|
|
start [/forum/topic.php?fid=45&fpage=77&tid=1612501]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
26ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 135ms |
0 / 0 |