Был пример в очень древней учебной базе (не Борей точно, как-то по другому называлась), которая шла еще с Access'ом 2.0 или 95:
Смысл в кратце -
в Header отчета ставяться поля Head1, Head2, Head3,...,HeadN - сколько помещаются на Вашем листе.
В Detail - под ними Col1, Col2, ...,ColN - поля или combobox'ы соответственно.
В Footer - Total1, Total2, ..., TotalN
Все элементы - свободные.RecordSource у отчета - пустой.
При открытии отчета открываете рекордсет Rs на основе Вашего (скорее всего перекрестного запроса)
В методе Header_Format пробегаете по запросу и берете первые N имен запроса
If (formatcount = 1) then
For i = 1 to rs.field.Count
if (i <= N) then
me("Head" & i) = rs.field(i-1).Name
endif
next i
endif |
В Detail_Format берете значения текущей строки рекордсета и переходите к следующей, а также в локальные переменные отчета суммируете значения для итога по столбу
В Footer_Format в поля Total1,...,TotalN записываете подсчитанные итоги.
В методе Close или UnLoad закрываете рекордсет.
Можете продумывать и многостраничные динамические отчеты в ширину.
-------------------------------------------------------
Зависть окружающих - это налог,который платит яркая индивидуальность.(с)Торо.