powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Еще раз про вывод отчета в Excel
25 сообщений из 28, страница 1 из 2
Еще раз про вывод отчета в Excel
    #32452269
Фотография Ирча
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем!
Вот такой простой вопрос...
Создаем отчет в Access
Группируем данные, делаем итого по группам
Открываем отчет и импортируем его в Excel
Получаем:
Итоги по группам в столбцах (например) А-D
остальные данные в столбцах I-H

Как сделать вывод промежуточных данных непосредственно под итоговыми?
...
Рейтинг: 0 / 0
Еще раз про вывод отчета в Excel
    #32452339
Фотография Ирча
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пациент: "Доктор, у меня болезнь, меня никто не замечает"
Доктор: "Следующий!"...
...
Рейтинг: 0 / 0
Еще раз про вывод отчета в Excel
    #32452346
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как ты экспорт делаешь? Стандартными средствами? Ну тады эта... не лечится.

что за нетерпеливый народ пошел - часа же не прошло между сообщениями
...
Рейтинг: 0 / 0
Еще раз про вывод отчета в Excel
    #32452361
Фотография Ирча
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А какими средствами это можно сделать?

Наблюдение: если топик опускается на 7-10 позиций в него уже не заглядывают
...
Рейтинг: 0 / 0
Еще раз про вывод отчета в Excel
    #32452367
Фотография Daf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй тут
...
Рейтинг: 0 / 0
Еще раз про вывод отчета в Excel
    #32452368
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А какими средствами это можно сделать?
Дави F1 или ищи по форуму...
---
Тебе же задали конкретный вопрос...
...
Рейтинг: 0 / 0
Еще раз про вывод отчета в Excel
    #32452387
Фотография Ирча
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скажите тогда. плизз
Как вывести данные построчно, и будут ли там итоги по группам?
у меня в этом и проблема, до этого я выгружала все данные в xcel, а там уже делала итоги и все остальное, но сейчас в итоговую строку мне надо добавить поле, которое не содержит промежуточных данных, т.е. итог по объекту - сумма, а рядом лимит по этому объекту.
Не могу ничего придумать, при чем перечень объектов динамический
Посоветуйте что-нибудь
...
Рейтинг: 0 / 0
Еще раз про вывод отчета в Excel
    #32452406
TRoUbLEs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вывод данных в Эксель построчно.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
    Dim xl As Excel.Application
    Dim wb As Excel.Workbook
    Dim ws As Excel.Worksheet
    Set xl = CreateObject( "Excel.Application" )
    Set wb = xl.Workbooks.Add( "\\basesrv\base\Кредиторка.xlt" )
    Set ws = wb.Worksheets( 1 )
    ws.Activate
    xl.Visible = True
    Set rst = [Forms]![Кредиторка].RecordsetClone
    rst.MoveFirst
    For iRow =  0  To rst.RecordCount -  1 
        For iCol =  1  To  5 
            ws.Cells(iRow+ 1 , iCol).Value = rst.Fields(iCol)
        Next iCol
    Next iRow

Остальную часть твоего писания я не понял, к сожалению. ;-(
...
Рейтинг: 0 / 0
Еще раз про вывод отчета в Excel
    #32452462
Фотография Ирча
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, я попробую
...
Рейтинг: 0 / 0
Еще раз про вывод отчета в Excel
    #32452534
iska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Еще можно так:
(objsheet - Excel.Worksheet, а2 - верхняя левая ячейка таблицы, rst - понятно что)
Код: plaintext
objSheet.Range( "a2" ).CopyFromRecordset rst
...
Рейтинг: 0 / 0
Еще раз про вывод отчета в Excel
    #32452567
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сосчитать итоги в запросе сделать Union
пример корявый из готовый mdb
(SELECT Tpers.Podr_Id, Tpers.Pers_Fio, Tpers.Gl1, 1 AS UR FROM Tpers)
UNION ALL
(SELECT Tpers.Podr_Id, "Сумма" AS Pers_Fio, Sum(Tpers.Gl1) AS Sum_Gl1, 2 AS UR FROM Tpers Group By Podr_Id)
ORDER BY podr_id,ur;

телефонная база - podr_id - отдел
gl1 - некий счетчик

ur - чтобы сумма шла ниже группы
на выходе получишь выборку по группам перемежающуюся суммами
...
Рейтинг: 0 / 0
Еще раз про вывод отчета в Excel
    #32453185
Фотография Ирча
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробовала вывод построчно
Из формы выводит без проблем, а на код:

Set rst = [Reports]![Кредиторка].RecordsetClone

Application-defined or object-defined error

А так как у формы, или у запроса не выведешь итоги по группам, вопрос остается открытым

Откуда Access берет данные с группировкой и суммами по группам, когда экспортирует в Excel стандартными средствами?

Предложение с Юнион хорошо, но у меня 4 уровня группировок, запрос не прокатит
...
Рейтинг: 0 / 0
Еще раз про вывод отчета в Excel
    #32453267
TRoUbLEs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну если ты выводишь отчет построчно, то тогда нет проблем это сделать в коде.
Есть group1, group2....... и есть sumg1, sumg2....., где хранится сумма. Сортируем выводимый рекрдсет в нужном порядке, т.е. order by group1, group2, group3, group4. Далее примерно следующий код (надеюсь будет понятно)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
irow= 0 
group1=rst.fields( 1 )
group2=rst.fields( 2 )
group3=rst.fields( 3 )
group4=rst.fields( 4 )
for i= 1  to rst.recordcount- 1 
if rst.fields( 4 )<>group4 then
irow=irow+ 2 
ws.cells(irow, 5 )= "Итого для группы "  & group4
ws.cells(irow, 4 )=sumg1
sumg1= 0 
group1=rst.fields( 1 )
irow=irow+ 1 
end if
................
' примерно также добавить обработку для остальных групп
...................
irow=irow+ 1 
for iCol= 1  to  4 
ws.cells(irow,icol)=rst.fields(icol)
next icol
next irow

P.S. Код писаля на коленке, так что может есть и ошибки.
...
Рейтинг: 0 / 0
Еще раз про вывод отчета в Excel
    #32453753
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Предложение с Юнион хорошо, но у меня 4 уровня группировок, запрос не прокатит


почему - формирую отчеты с 4-мя уровнями работает

кинь образец данных и обьясни где нужны суммы- помаракую
...
Рейтинг: 0 / 0
Еще раз про вывод отчета в Excel
    #32454059
Фотография Ирча
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код для меня сложный. Я попробую разобраться, но если к кого-нибудь есть примерчик, киньте пожалуйста на мыло, в примере легче покопаться!
Спасибо за поддержку...
...
Рейтинг: 0 / 0
Еще раз про вывод отчета в Excel
    #32454214
TRoUbLEs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Заранее прошу прощения за оффтоп!
Вот и еще один экономист тусуется здесь на форуме, чтобы написать что-то под себя. ;-( Такое ощущение, что тут добрая треть людей по образованию экономисты, а не программеры и тусуются здесь, чтобы облегчить себе работу. Странно все это. Ну, положим, в г. Новый Уренгой и не хватает квалифицированных спецов, которые бы написали что-то стоящее, но в Питере-то они уж всяко должны быть!!! Ан нет, и тут мне приходится писать что-то свое, сидеть дома после работы до 3 ночи, чтобы что-то чуть-чуть подправить, чтобы было удобно работать и можно было бы особо не парясь вытащить нужную информацию за максимально короткий срок.
М-дя, грустно. :-((( Фигня, на самом деле, не здоровая. :-(((
Еще раз сорри за оффтоп.
...
Рейтинг: 0 / 0
Еще раз про вывод отчета в Excel
    #32454627
Фотография Ирча
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет Экономистам!

А как на счет примерчика???
...
Рейтинг: 0 / 0
Еще раз про вывод отчета в Excel
    #32454641
TRoUbLEs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кидай текст запроса сюда и описывай какие уровни группировки и какие суммы нужны. Будет время, напишу примерчик, либо сегодня, либо завтра.
P.S. Хотя, тот "примерчик" что я написал, вполне достаточен, чтобы разобраться.
...
Рейтинг: 0 / 0
Еще раз про вывод отчета в Excel
    #32454664
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Аналогично - без схемы данных и вида выходного отчета не помочь!
...
Рейтинг: 0 / 0
Еще раз про вывод отчета в Excel
    #32454797
Фотография Ирча
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Текст запроса кидать бесполезно он очень большой и не информативный

Ситуация такая
Формируются затраты по объектам строительства
На объектах работают разные подрядчики
Сами объекты группируются в площадки строительства

Я собираю большой запрос в результате получаю единичные данные

№Площ №Объекта Подрядчик №Договора Выполнение Оплата
1 1 1 1 100 100
1 2 1 1 100 100
2 4 1 1 100 100
2 4 2 1 100 100

Таким вот макаром, только числовых полей больше
Далее мне надо сделать :
1 Группировка по площадкам
2 Группировка по объектам
3 Группировка по подрядчикам
4 Группировка по договорам
Для каждого уровня группировки сумма выполнения и оплаты
И все это выгрузить в Excel
Сейчас я выгружаю единичные данные и делаю в Excele промежуточные итоги ВСЕ ПУТЕМ
Но господа инвесторы хотят видеть Лимит стоимости по каждому объекту.
В отчете я могу сделать группы, по ним итоги, и для каждого объекта добавить поле с лимитом и посчитать остаток средств,
Но выбросить в Excel эти данные уже не могу.
И вставлять в Excelе в строку сгенерированную функцией ПромежуточныеИтоги дпнные по лимиту, тоже не могу.
Вот и замкнутый круг.
Поэтому вывод Запроса, формы или таблици в Excel меня не спасет.
...
Рейтинг: 0 / 0
Еще раз про вывод отчета в Excel
    #32455055
Alexus12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а можешь вывести в один запрос все нужные данные вместе с лимитом?

Описываю РАБОТАЮЩИЙ алгоритм
Пусть у тебя есть данные:

Группа1 объект1 Свойствообъекта1 Значениесвойства1
..
Группа1 объект1 Свойствообъекта10 Значениесвойства10
Группа1 объект2 Свойствообъекта Значениесвойства
...
Группа25 объект12 Свойствообъекта Значениесвойства

На каждый объект (или группу?) у тебя есть лимит, так?
Перемножь (join) запрос с данными (выше) и запрос с лимитами),
получишь повторы лимита (каждому объекту лимит):

Группа1 объект1 Свойствообъекта1 Значениесвойства1 Лимит1
..
Группа1 объект1 Свойствообъекта10 Значениесвойства10 Лимит1
Группа1 объект2 Свойствообъекта Значениесвойства Лимит2
...
Группа25 объект12 Свойствообъекта Значениесвойства Лимит2


Итого - в одном запросе все данные


-----

Шаг 2:
Открываешь рекордсет (ОТСОРТИРОВАННЫЙ по всем нужным группам!!!) программно
и заводишь группировочные переменные (по числу выводимых группировок)
Пробегая циклом по рекордсету
выводишь данные в Эксель,
одновременно (с помощью заведенных переменных)
отлавливая смену группы
и вписывая в нужные ячейки имена групп

Одновременно в динамический (если не знаешь сколько групп) массив
запоминаешь координаты границ групп
и по покончании каждой группы
рассчитываешь Экселев Range ("А5:А125" например),
в котором оказались данные только что закончивашейся группы
выводишь строчку "ИТОГО по группе"
и ФОРМУЛУ по всем данным, где нужен итог (.formula="sum(......)"

ЗДЕСЬ же (в начале\конце группы) ты можешь ОДНАЖДЫ вывести свой лимит по объекту,
хоть он и повторяется в рекордсете на каждой строке

Массив понадобится в КОНЦЕ отчета:
когда нужно будет получить координаты итогов всех групп,
чтобы сложить их во "всего) (так же, формулой листа Excel)

Соответственно, формат выводимых ячеек у тебя под полным контролем,
можешь получить отчет, в точности повторяющий Access
...
Рейтинг: 0 / 0
Еще раз про вывод отчета в Excel
    #32455107
TRoUbLEs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
То Alexus12:
Все правильно, но только дама просила пример, т.к. вышеописанный код ей непонятен, поэтому думаю, что и алгоритм тут большой роли не сыграет.
Ну а по поводу массивов, ИМХО, то можно обойтись и без них (хотя с ними проще), просто завести переменные, где будет сумма с накопелнием по каждой группе и вставлять ее в итоги по каждой группе. Формулы тут не будет, конечно, но не знаю, насколько она тут нужна.
Собственно, возможно сегодня вечером из дома кину рабочий примерчик. Я делал такое, когда работал в банке, только там было немного посложнее, т.к. данные с базы Informix выгружались в текстовый файл и приходилось руками строить отчет. Для этого я сам писал макрос в экселе, чтобы это делал за меня комп. Тогда все получилось, но куда-то уже подевал пример. ;-(
...
Рейтинг: 0 / 0
Еще раз про вывод отчета в Excel
    #32455991
Фотография Ирча
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Alexsus12
Ну, положим первый шаг я осилю
Итого-в запросе все данные
Дальше сложнее:
Открываешь рекордсет (ОТСОРТИРОВАННЫЙ по всем нужным группам!!!) программно
Где открываем?
и заводишь группировочные переменные (по числу выводимых группировок)
Переменные же надо описывать, а у меня их все время разное колличество (группировок- то)
Я понимаю, что раз советуют, то можно это сделять, знать бы только как?
...
Рейтинг: 0 / 0
Еще раз про вывод отчета в Excel
    #32456079
Фотография Ирча
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем большое спасибо!Я его ПОБЕДИЛА!

Все сделала через Union all
Самое интересное, что срабатывает быстро и красиво
Щас еще условное форматирование в Excele и будет совсем красота!
...
Рейтинг: 0 / 0
Еще раз про вывод отчета в Excel
    #32456382
Alexus12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Открываешь рекордсет (ОТСОРТИРОВАННЫЙ по всем нужным группам!!!) программно
>Где открываем?

Dim rstToXL As DAO.Recordset
Set rstToXL = CurrentDb.OpenRecordset("имя твоего запроса", dbOpenDynaset)

>и заводишь группировочные переменные (по числу выводимых группировок)
>Переменные же надо описывать, а у меня их все время разное колличество (группировок- то)
>Я понимаю, что раз советуют, то можно это сделять, знать бы только как?

а) если в модуле нет Option Explicit - не требуется декларация
б) в любом случа на каждый отчет будешь писать свою процедуру - а в нем групп разное количество?
в) для переменного количества однородных переменных
используют динамические массивы
которым приращают размер оператором
Redim PRESERVE myArray(ubound(myarray)+1) 'или в этом роде

Расскажи подробнее как справилась - интересно!
...
Рейтинг: 0 / 0
25 сообщений из 28, страница 1 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Еще раз про вывод отчета в Excel
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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