|
Правка отчета из VBA
|
|||
---|---|---|---|
#18+
Здравствуйте спецы в access! Подскажите пожалуйста, как из VBA не только присваивать отчету recordsource, что я умею, но и назначать источники записей полям отчета? К примеру есть отчет, на нем в поле данных я создал поле. Можно сразу в свойствах присвоить источник данных в виде одного из полей источника запроса. Но я создаю чистое поле, а связывать его с данными хочу из VBA, т.к. к примеру источник данных отчета у меня динамически образуется с разными полями и я хочу на лету полю отчета присвоить то или иное поле источника отчета. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2018, 19:23 |
|
Правка отчета из VBA
|
|||
---|---|---|---|
#18+
guest_rusimport, да, я уже подумал о том, чтобы среагировать на событие открытие отчета. Пример вроде наглядный, но где ADODB взять? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2018, 19:50 |
|
Правка отчета из VBA
|
|||
---|---|---|---|
#18+
guest_rusimport, так, ладно, нашел в references как всегда ... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2018, 19:52 |
|
Правка отчета из VBA
|
|||
---|---|---|---|
#18+
MSerg1968-Sисточник данных отчета у меня динамически образуется с разными полями и я хочу на лету полю отчета присвоить то или иное поле источника отчета для таких запросов(списков и перекрестных) обычно применяю НТМ-формат с печатью вордом или екселем что надо --написать нужный запрос --сделать формочку с кнопками или списком для вызова стандартного модуля формирования(последнее время мне больше нравится список --можно задать права доступа для пользователей) --полученный НТМ можно просмотреть/распечатать или в броузере или ворде или екселе для 90% различных справок весьма удобен ... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2018, 21:31 |
|
Правка отчета из VBA
|
|||
---|---|---|---|
#18+
ПЕНСИОНЕРКА, Я нашел! Способ как у меня, сначала делаю отчет, чистый, с полями. Потом в коде формирую источник записи отчета, а потом этим полям быстро, в режиме редактирования назначаю поля запросов. Делается бесхитростно так вот : DoCmd.OpenReport ("MyReport"), acViewDesign Reports!MyReport.RecordSource = S1 ' в этой переменной зашит запрос типа Select....... Reports!MyReport!LHeader.Caption = "Здесь пишу заголовок отчета" Reports!MyReport!F1.ControlSource = F' Reports!MyReport!F2.ControlSource = "Item" Reports!MyReport!FPNum.ControlSource = "PNum" Reports!MyReport!Fqt.ControlSource = "Qtv" Reports!MyReport!FUnits.ControlSource = "units" DoCmd.Close acReport, "MyReport", acSaveYes ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2018, 17:48 |
|
Правка отчета из VBA
|
|||
---|---|---|---|
#18+
ПЕНСИОНЕРКА, Я нашел! Способ как у меня, сначала делаю отчет, чистый, с полями. Потом в коде формирую источник записи отчета, а потом этим полям быстро, в режиме редактирования назначаю поля запросов. Делается бесхитростно так вот : DoCmd.OpenReport ("MyReport"), acViewDesign Reports!MyReport.RecordSource = S1 ' в этой переменной зашит запрос типа Select....... Reports!MyReport!LHeader.Caption = "Здесь пишу заголовок отчета" Reports!MyReport!F2.ControlSource = "Item" 'а далее просто бегу по созданным пустышкам-полям и Reports!MyReport!F3.ControlSource = "PNum" 'присваиваю им значения из запроса Reports!MyReport!F4.ControlSource = "Qtv" 'который ранее сделал для источника данных. У меня S1 DoCmd.Close acReport, "MyReport", acSaveYes еще нашел что можно скрывать поле, если для него не нашлось поля в запросе. Reports!MyReport!FDate.Visible = False Все отлично! Но! Хочется дальше... Теперь хочется в этом отчете создать группу, которая в конструкторе отчетов делается одной кнопкой. Но вот пока не знаю как, не нащупал. Если есть подсказки, буду благодарен! ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2018, 17:54 |
|
Правка отчета из VBA
|
|||
---|---|---|---|
#18+
MSerg1968-S, почитайте Гетца. он про форматирование отчетов хорошо написал. главка там небольшая. Код: vbnet 1.
в рабочей базе-если рантайм - этот режим не работает, а в обычной базе открывается окно редактора, например. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2018, 18:34 |
|
Правка отчета из VBA
|
|||
---|---|---|---|
#18+
MSerg1968-SЯ нашел!Нет. Не нужен режим Design. Всё это делается в событии открытия отчёта ( Open ). ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2018, 19:43 |
|
Правка отчета из VBA
|
|||
---|---|---|---|
#18+
Панург, отлично, но как? Я нашел вот так dim g as variant g = Reports.Application.CreateGroupLevel("Имя_Отчета", "Имя_поля_по_которому_группируем", True, False) Эта конструкция работает в режиме DoCmd.OpenReport ("Имя_Отчета"), acViewDesign Открыл отчет по кнопке с формы, смотрю, а там моя группа создалась. Хорошо! теперь следующий вопрос, а как удалить группу, чтобы на ее месте создать новую? кто-нибудь знает? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2018, 20:05 |
|
Правка отчета из VBA
|
|||
---|---|---|---|
#18+
Панург, чем обращаться-то в событии открытия отчета? Там все одинаково что и из модуля. Я не вижу разницы, выражение g = Reports.Application.CreateGroupLevel("Имя_Отчета", "Имя_Поля", True, False) срабатывает и выглядит одинаково что в модуле, что в событии открытия отчета. DeleteReportControl? так ведь группировка не имеет имени, как к ней обратиться? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2018, 20:34 |
|
Правка отчета из VBA
|
|||
---|---|---|---|
#18+
MSerg1968-S CreateGroupLevel А, ты вон чего хочешь! А чего только уровни группировок? Не отчёт с нуля? Совет - оставь этот "альпинизьм" и делай специализированные отчёты. Путнего ничего не получится, только время потеряешь (хотя...) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2018, 21:49 |
|
Правка отчета из VBA
|
|||
---|---|---|---|
#18+
Панург, Отчет с нуля это интересно же! Можно повозиться, это того стоит. Разные бывают ситуации жизненные. Мне вот к примеру легче было бы один отчет поматросить в коде процедуры и все. Потому что специализированных отчетов мне понадобится три минимум, а код от этого не облегчится, кнопка-то на форме одна. Либо кнопок лепить на форму, что перегрузит ее. Это нормальный поиск баланса разумного компромисса, или отчеты плодить, или кнопки, или меньше кода и отчетов, но вот такие штуки. Короче, если кто знает с ходу, подскажите пожалуйста, я конечно работаю, просто методом проб. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2018, 09:34 |
|
Правка отчета из VBA
|
|||
---|---|---|---|
#18+
MSerg1968-SМожно повозиться, это того стоит.Повозится можно (кому это нужно?), но оно этого не стоит. Да и правильно тебе сказали выше, в среде RunTime у тебя этот фокус не прокатит. От слова "вообще". ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2018, 09:41 |
|
Правка отчета из VBA
|
|||
---|---|---|---|
#18+
MSerg1968-SНо я создаю чистое поле, а связывать его с данными хочу из VBA, т.к. к примеру источник данных отчета у меня динамически образуется с разными полями и я хочу на лету полю отчета присвоить то или иное поле источника отчета. а так не пробовали--через запрос создайте рабочую таблицу , на нее сделайте отчет и запросом записывайте в нее данные(варианты группировки) insert into rab1(c1,c2,c3,n1,n2,n3,.....) select klient,tover,period,kol,cena,summa insert into rab1(c1,c2,c3,n1,n2,n3,.....) select tover,klient,period,kol,cena,summa insert into rab1(c1,c2,c3,n1,n2,n3,.....) select period,tover,klient,kol,cena,summa отчет 1, а в зависимости от порядка данных --разная выходная форма ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2018, 09:50 |
|
Правка отчета из VBA
|
|||
---|---|---|---|
#18+
ПЕНСИОНЕРКА, А бабушка, похоже, дело говорит! Действительно, не создавать ли запрос типа SELECT Поле1 as F1, Поле2 as F2..... подставляя всякий раз под F1 и F2 разные поля из рабочей таблицы! А отчет можно заранее нарисовать с группировкой по F1 к примеру, и подставлять в него разные данные из рабочей таблицы через запрос! Тогда не надо и с группировкой мурыжиться Похоже на гениальный ход! Надо обдумать! Спасибо большое! ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2018, 10:35 |
|
Правка отчета из VBA
|
|||
---|---|---|---|
#18+
MSerg1968-S, можно и без таблицы --запросами select klient as c1,tover as c2,period as c3,kol as n1,cena as n2,summa as n3..... отчет только передать надписи на шапке делала через Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
можно конечно и простыми переменными, но я достаточно часто применяла TYPE --для подсказки имен ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2018, 11:15 |
|
|
start [/forum/topic.php?fid=45&msg=39616117&tid=1611594]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
53ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 285ms |
total: | 427ms |
0 / 0 |