Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Отчет из временной таблицы  [new]
gerniko
Member

Откуда:
Сообщений: 6
Необходимо создать отчет по данным из временной таблицы (количество столбцов определяется пользователем в runtime). Отчеты в Access создаются статические, то есть количество столбцов должно быть определено заранее.
1. Как посредством VBA дать понять отчету какие именно поля будут браться из таблицы и заполнять их этими данными?
Есть подозрение, что по событию OnOpen отчет будет проверять существование данного столбца и заполнять поле необходимыми значениями.
2. Какая функция возвращает имя столбца в таблице?
29 апр 07, 14:49    [4086112]     Ответить | Цитировать Сообщить модератору
 Re: Отчет из временной таблицы  [new]
KrukVN
Member [заблокирован]

Откуда: РБ, Гомель
Сообщений: 778
моя в таких случаях генерит отчеты в excel - проще
29 апр 07, 14:56    [4086119]     Ответить | Цитировать Сообщить модератору
 Re: Отчет из временной таблицы  [new]
Karfaqen
Member

Откуда:
Сообщений: 7010
Можно при открытии отчета устанавливать источники контролов отчета из числа тех, которые выбрал пользователь - например, по списку полей запроса-источника (который как раз и формируется из списка выбранных пользователем полей). Имена полей источника можно получить, открыв Recordset на этом источнике и прочитав коллекцию Fields.

Хотя такой "промежуточный" запрос - это просто косвенный вариант передачи выбранного списка полей в отчет. Собственно задача как раз и сводится к передаче этого списка в отчет.

И это можно сделать через Public/Static коллекцию/массив, который вы сформируете в момент выбора пользователем полей для печати. А при открытии отчета возьмете их и сделаете назначение источников полей. В этом случае источником отчета может быть вся исходная таблица.
29 апр 07, 15:06    [4086129]     Ответить | Цитировать Сообщить модератору
 Re: Отчет из временной таблицы  [new]
gerniko
Member

Откуда:
Сообщений: 6
Ваше решение изысканнее. Но я не совсем хорошо себе представляю как в методе TransferSpreadsheet заполнять поле Range, если результируещее количество строк и столбцов неизвестно.
29 апр 07, 15:25    [4086138]     Ответить | Цитировать Сообщить модератору
 Re: Отчет из временной таблицы  [new]
gerniko
Member

Откуда:
Сообщений: 6
Karfaqen
Можно при открытии отчета устанавливать источники контролов отчета из числа тех, которые выбрал пользователь - например, по списку полей запроса-источника (который как раз и формируется из списка выбранных пользователем полей). Имена полей источника можно получить, открыв Recordset на этом источнике и прочитав коллекцию Fields.

Хотя такой "промежуточный" запрос - это просто косвенный вариант передачи выбранного списка полей в отчет. Собственно задача как раз и сводится к передаче этого списка в отчет.

И это можно сделать через Public/Static коллекцию/массив, который вы сформируете в момент выбора пользователем полей для печати. А при открытии отчета возьмете их и сделаете назначение источников полей. В этом случае источником отчета может быть вся исходная таблица.

Дело в том, что формирование таблицы и выбор пользователем полей происходит в форме, а как осуществляется передача в открываемом из формы отчете передача параметра я не совсем понял. Точнее, каким образом одним передаваемым параметром в отчет можно решить все мои проблемы (задать имена столбцов в отчете, заполнить столбцы, посчитать сумму). Можно конечно передать этим параметром в отчет массив из выбранных пользователем полей, но как потом в отчете этот массив эффективно обработать я не знаю.
29 апр 07, 15:34    [4086145]     Ответить | Цитировать Сообщить модератору
 Re: Отчет из временной таблицы  [new]
gerniko
Member

Откуда:
Сообщений: 6
и вообще, помоему в отчет при открытии не параметр передается, а фильтр на источник записей отчета.
29 апр 07, 15:38    [4086148]     Ответить | Цитировать Сообщить модератору
 Re: Отчет из временной таблицы  [new]
Karfaqen
Member

Откуда:
Сообщений: 7010
gerniko
и вообще, помоему в отчет при открытии не параметр передается
Это понятно, поэтому мной и предлагались способы получения в отчете списка выбранных полей
Karfaqen
через Public
Например, вы можете описать в общем модуле некую Public переменную и поместить в нее список ваших выбранных полей - ПОСЛЕ выбора полей в форме и ДО открытия отчета. А в процедуре Report_Open - получить ваш список, просто прочитав значение этой переменной, поскольку Public-переменные никуда передавать не надо, они видимы в любой точке проекта - на то они и Public.

Наверняка есть и другие варианты. Но чтобы о них говорить конкретно, нодо точнее знать как именно у вас организован процесс выбора полей и открытия отчета. Например, если форма, где делается выбор полей остается открытой в момент открытия отчета, то список выбранных полей вероятно можно получить прямо из этой формы.
29 апр 07, 19:44    [4086369]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить