powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Динамические заголовки перекрестного запроса (возможно ли?)
16 сообщений из 16, страница 1 из 1
Динамические заголовки перекрестного запроса (возможно ли?)
    #39444768
kulib
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!

Перелопатил многое прежде чем обратиться, видимо не способен догнать самостоятельно))) Есть простейший перекрестный запрос, но в его результате нужно вывести заголовки в виде порядковой нумерации, например С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. Воспроизвести ошибку в примере у меня самого не получилось, а саму базу выгрузить сюда не могу.

...
Рейтинг: 0 / 0
Динамические заголовки перекрестного запроса (возможно ли?)
    #39444830
kulib, вы лучше расскажите, для какой цели используется ваш запрос? Что вы делаете в коде? И почему "нужно вывести заголовки в виде порядковой нумерации, например С1,С2,С3,С4 и т.д."?
...
Рейтинг: 0 / 0
Динамические заголовки перекрестного запроса (возможно ли?)
    #39444832
studieren
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kulib,

Ну так создайте динамический запрос в VBA, а потом меняйте SQL текст запроса. В чём проблема? Правда получится не в буквальном смысле "перекрёстный запрос", а то, что похоже на него. Там как раз таки можете контролировать название столбцов.



P.S.
Ваш пример не смотрел.
...
Рейтинг: 0 / 0
Динамические заголовки перекрестного запроса (возможно ли?)
    #39444845
kulib
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
studierenkulib,
Ну так создайте динамический запрос в VBA, а потом меняйте SQL текст запроса.Не очень удобно, замучаешься потом разбираться что-зачем и почему. Неужеле в аксе нет такой возможности создать заголовки с переименованием?

Анатолий ( Киев )kulib, вы лучше расскажите, для какой цели используется ваш запрос? Что вы делаете в коде? И почему "нужно вывести заголовки в виде порядковой нумерации, например С1,С2,С3,С4 и т.д."? Чтобы стороннему юзеру результата нельзя было определить принадлежность цен к тому или другому поставщику.
...
Рейтинг: 0 / 0
Динамические заголовки перекрестного запроса (возможно ли?)
    #39444853
kulib
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот здесь http://www.sql.ru/forum/371977/dinamicheskiy-perekrestnyy-zapros что-то похожее обсуждалось, даже Владимир Саныч поучаствовал, но я всё равно ответа на свою проблему не понял.
...
Рейтинг: 0 / 0
Динамические заголовки перекрестного запроса (возможно ли?)
    #39444873
kulib
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Самое обидное, что сам запрос то отрабатывает в ручном режиме, а только в коде выдает такую ошибку
...
Рейтинг: 0 / 0
Динамические заголовки перекрестного запроса (возможно ли?)
    #39444881
kulibАнатолий ( Киев )kulib, вы лучше расскажите, для какой цели используется ваш запрос? Что вы делаете в коде? И почему "нужно вывести заголовки в виде порядковой нумерации, например С1,С2,С3,С4 и т.д."? Чтобы стороннему юзеру результата нельзя было определить принадлежность цен к тому или другому поставщику. Хороший ответ на три вопроса. Ну, какие ответы, такие и советы...
...
Рейтинг: 0 / 0
Динамические заголовки перекрестного запроса (возможно ли?)
    #39444890
kulib
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Анатолий ( Киев )Хороший ответ на три вопроса. Ну, какие ответы, такие и советы...Ну ....., я ж не знал, что всё так важно, извиняйте.

1. Есть три столбца исходной таблицы (сама таблица предварительно формируется в ходе основного цикла), которые хочу превратить в перекрестный запрос для наглядности результата (фактически для группировки данных).
2. В коде цикл, который работает для вывода этих данных.
3. В резульате не должно быть видно поля IDSELLER иначе спокойно можно определить чьи данные, а этого допустить нельзя
...
Рейтинг: 0 / 0
Динамические заголовки перекрестного запроса (возможно ли?)
    #39444936
kulib
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кстати заметочка: на ХР в Аксе 2003 всё выполняется вчистую. Проблему наблюдаю только в Винде10 32 с Аксом 2010
...
Рейтинг: 0 / 0
Динамические заголовки перекрестного запроса (возможно ли?)
    #39444968
Predeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kulib...
3. В резульате не должно быть видно поля IDSELLER ...
Выплевывайте результат запроса на лист Excel методом CopyFromRecordset, и подписывайте столбцы как вам угодно.
...
Рейтинг: 0 / 0
Динамические заголовки перекрестного запроса (возможно ли?)
    #39445016
kulib
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PredeclaredВыплевывайте результат запроса на лист Excel Именно так я и делаю когда нужно сохранить и отправить результат в экселе, но некоторые просят dbf и собственно из-за этого весь гимор. Я мог бы конечно "заставлять" макрос в шаблоне (после выгрузки в xls) пересохранять файл в dbf, но это как-то грустно. Именно хочется напрямую в dbf выгружать уже с пронумерованными именами полей.
...
Рейтинг: 0 / 0
Динамические заголовки перекрестного запроса (возможно ли?)
    #39445018
kulib
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я наверное вас запутал наличием в примере TransferSpreadSheet, но это всего лишь вариант выгрузки помимо Output. Основная проблема в том, что именно запрос прерывается в коде
...
Рейтинг: 0 / 0
Динамические заголовки перекрестного запроса (возможно ли?)
    #39445132
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kulib, может так (см. пример). Создана доп таблица с именами будущих столбцов, заполняется и чистится через код (см. VBA). Так будет быстрее исполнятся запрос.
...
Рейтинг: 0 / 0
Динамические заголовки перекрестного запроса (возможно ли?)
    #39445347
kulib
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПанургСоздана доп таблица с именами будущих столбцов, Уважаемые! Я справился с проблемой, правда можно сказать через ж..., но всё же. Спасибо всем, Панург благодарю!!!

В итоге мучений смирился с фактом, что просто так встроенными методами преобразовать имена полей не получится. Пошел другим путем. Преобразовал промежуточный запрос "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.
Как сымитировать счетчик в обычном запросе либо ленточной форме?
A1:
SQL
Выделить код

1 SELECT (SELECT SUM(1) FROM t AS p WHERE p.f<=p1.f), p1.f
2 FROM t AS p1
3 ORDER BY p1.f;

A2:
SQL

1 SELECT DCount("f", "t","f<=" & CStr(f)), f
2 FROM t
3 ORDER BY f;

Примечание 1. Поле f обязано быть уникальным.

Примечание 2. Способ 1 быстрее работает, но является необновляемым.

A3: В новых версиях Аксесса у формы есть свойство CurrentRecord.
...
Рейтинг: 0 / 0
Динамические заголовки перекрестного запроса (возможно ли?)
    #39445456
kulibPredeclaredВыплевывайте результат запроса на лист Excel Именно так я и делаю когда нужно сохранить и отправить результат в экселе, но некоторые просят dbf и собственно из-за этого весь гимор. Я мог бы конечно "заставлять" макрос в шаблоне (после выгрузки в xls) пересохранять файл в dbf, но это как-то грустно. Именно хочется напрямую в dbf выгружать уже с пронумерованными именами полей. Если вы уже выгружаете в Excel и в файле меняете заголовки столбцов, то сохранить его как DBF - одна строчка кода в этой же процедуре. Макрос в шаблоне не нужен. ИМХО, вы пошли не тем путем.

Если "хочется напрямую в dbf выгружать", то средствами VBA (работа с бинарными файлами) несложно поменять имена полей в файле. А еще можно нагуглить код для работы с dbf средствами VBA напрямую (без всяких драйверов).
...
Рейтинг: 0 / 0
Динамические заголовки перекрестного запроса (возможно ли?)
    #39445469
kulib
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Анатолий ( Киев )Если вы уже выгружаете в Excel и в файле меняете заголовки столбцов, то сохранить его как DBF - одна строчка кода в этой же процедуре. Макрос в шаблоне не нужен. ИМХО, вы пошли не тем путем.К сожалению в 2010-м оффисе в экселе нет сохранения в dbf(((

Анатолий ( Киев )Если "хочется напрямую в dbf выгружать", то средствами VBA (работа с бинарными файлами) несложно поменять имена полей в файле.В выгруженном файле? Как-то не очень подходяще после выгрузки опять лезть к файлу. Задача - выплюнуть данные и забыть про них, что собсна у меня и получилось.

Анатолий ( Киев )А еще можно нагуглить код для работы с dbf средствами VBA напрямую (без всяких драйверов).Проблема решена и сейчас мне уже нужно решать другие, Спасибо!
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Динамические заголовки перекрестного запроса (возможно ли?)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]