Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 11.11.2016
Сообщений: 10
1

Запуск отчета по фильтру формы не из формы

05.03.2017, 18:48. Показов 1968. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток!

Помогите, пожалуйста решить проблему:
Есть БД в формате Access2003. Есть форма с большим количеством полей, есть инструменты для задания различных фильтров для данных этой формы и есть отчет который должен строиться по отфильтрованному ключевому полю таблицы -- источника данных формы. Основная проблема в том что отчет запускается не из формы, а из созданной панели инструментов, поэтому передать фильтр напрямую в отчет при его вызове нельзя.
Вопрос: нельзя ли как-нибудь обратиться SQL запросом к отфильтрованным данным открытой формы как к некой "виртуальной таблице" и на ее основе построить запрос для данных отчета?

Или какие варианты решения проблемы есть? Сохранять фильтр в какую-нибудь глобальную переменную, а в отчет передавать и все данные формы, и еще недостающие данные для отчета?
Еще видел здесь пример построения отчета путем копирования рекордсета, т.е. мне надо при открытии отчета скопировать рекордсет, в цикле его перебрать, взять только ключевое поле, допустим, во временную таблицу и уже на основе этой таблицы и таблицы с данными построить запрос? Может как-то попроще можно?

И еще помогите, пожалуйста, найти этот пример (там три варианта построения отчета, третий - с помощью рекордсета), а то я один раз нашел, не сохранил, а второй раз чего-то не могу найти...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.03.2017, 18:48
Ответы с готовыми решениями:

Печать отчета по фильтру формы
Добрый вечер! У меня возникла такая проблема и я не знаю как ее реализовать... есть БД в ней...

Печать отчета по фильтру для подчиненной формы
Добрый день! Есть форма и в ней подчиненная форма. В подчиненной форме Пользователь...

Формирование отчета из формы по сложному фильтру (Access 2010)
Дорогие формучане, бьюсь уже не один день. Помогите доделать следующий фильтр, скриншот с базой...

Открытие другой формы по фильтру
Хочется узнать ваше мнение, это черновой рабочий примерчик который открывает др. форму по фильтру,...

9
Мы один, давай на "ты"
3632 / 1335 / 326
Регистрация: 16.06.2016
Сообщений: 3,179
06.03.2017, 04:11 2
Цитата Сообщение от Al8 Посмотреть сообщение
Основная проблема в том что отчет запускается не из формы, а из созданной панели инструментов, поэтому передать фильтр напрямую в отчет при его вызове нельзя.
И что? Пиши свою функцию и цепляй к своей панели. Не изобретай велосипедов, делай проще и стандартно, не нужны тебе рекордсеты форм как источник для отчёта.
Цитата Сообщение от Al8 Посмотреть сообщение
И еще помогите, пожалуйста, найти этот пример (там три варианта построения отчета, третий - с помощью рекордсета), а то я один раз нашел, не сохранил, а второй раз чего-то не могу найти...
Вот тебе пример -> https://www.cyberforum.ru/post9353752.html
1
0 / 0 / 0
Регистрация: 11.11.2016
Сообщений: 10
06.03.2017, 17:35  [ТС] 3
Цитата Сообщение от Панург Посмотреть сообщение
Вот тебе пример -> Отчет из формы
Во! Спасибо огромное!

Цитата Сообщение от Панург Посмотреть сообщение
И что? Пиши свою функцию и цепляй к своей панели. Не изобретай велосипедов, делай проще и стандартно, не нужны тебе рекордсеты форм как источник для отчёта.
Ну я вот и пытаюсь понять как проще... В Вашем примере создал еще три отчета, каждый работает как нужно и ни один мне не нравится...
Первый использует DLoockup -- на больших объемах будет тормозить.
Второй делает временную таблицу -- висяк какой-то получается.. Да и перебор циклом по всему рекордсету тоже не айс.
В третьем надо в источник данных отчета передавать все поля по которым может быть фильтр в форме, а это до фига выходит.
Больше вариантов нет?
Вложения
Тип файла: rar Reports__.rar (38.3 Кб, 10 просмотров)
0
Модератор
Эксперт MS Access
12108 / 4968 / 791
Регистрация: 07.08.2010
Сообщений: 14,610
Записей в блоге: 4
06.03.2017, 18:50 4
Цитата Сообщение от Al8 Посмотреть сообщение
Больше вариантов нет?
а более реалистической таблицы и более правдоподобного отчета --тоже нет
я практически не вижу, чем отчеты 1-2-3 отличаются
в 3-м -свободные поля увидела
0
Мы один, давай на "ты"
3632 / 1335 / 326
Регистрация: 16.06.2016
Сообщений: 3,179
06.03.2017, 19:25 5
shanemac51, да, отчёты не отличаются, так было задумано и специально намеренно упрощено. И задача примера показать, как открыть отчёт, а не виртуозное создание отчета.

Al8, вот зачем сложности тебе? Получи фильтр который применён к набору данных на форме и примени его к набору данных отчёта.
0
1256 / 476 / 103
Регистрация: 29.03.2016
Сообщений: 1,182
06.03.2017, 19:33 6
При открытии экземпляра формы создавайте для нее свою временную панель инструментов
с подпиской на события кнопок, опишите процедуры обработки событий кнопок.
Не забудьте ссылку на офисную библиотеку в референсах.

Вариант "простыней" в вашем примере:
Вложения
Тип файла: zip Reports 1__.zip (33.9 Кб, 15 просмотров)
1
Мы один, давай на "ты"
3632 / 1335 / 326
Регистрация: 16.06.2016
Сообщений: 3,179
06.03.2017, 20:04 7
Цитата Сообщение от Al8 Посмотреть сообщение
В третьем надо в источник данных отчета передавать все поля по которым может быть фильтр в форме, а это до фига выходит.
Не очень понятна проблема. Сохрани запрос и используй его как источник для формы и отчёта. Если можно использовать фильтр для формы, то какая проблема его использовать для отчёта.
Цитата Сообщение от Al8 Посмотреть сообщение
Больше вариантов нет?
А так - беспредметный разговор.
0
Модератор
Эксперт MS Access
12108 / 4968 / 791
Регистрация: 07.08.2010
Сообщений: 14,610
Записей в блоге: 4
06.03.2017, 20:31 8
Цитата Сообщение от Панург Посмотреть сообщение
А так - беспредметный разговор.
вот и вы увидели, что не все так прозрачно --я поэтому и задала уточняющий попрос
0
0 / 0 / 0
Регистрация: 11.11.2016
Сообщений: 10
06.03.2017, 21:17  [ТС] 9
Цитата Сообщение от shanemac51 Посмотреть сообщение
а более реалистической таблицы и более правдоподобного отчета --тоже нет
я практически не вижу, чем отчеты 1-2-3 отличаются
в 3-м -свободные поля увидела
Вопрос именно в способе передачи данных в отчет, а сами отчеты одинаковые. Я создал еще три отчета (4, 5 и 6), которые вызываются из панели инструментов и в которых способы передачи данных в отчет разные.

Цитата Сообщение от Панург Посмотреть сообщение
Al8, вот зачем сложности тебе? Получи фильтр который применён к набору данных на форме и примени его к набору данных отчёта.
В базе, которую я правлю, на главной форме несколько подчиненных форм, и в итоге в отчет надо передавать очень много полей по которым может быть фильтрация. Еще фильтр по форме может содержать много символов, сталкивался с тем, что для отчетов, которые вызываются с формы, длина фильтра оказывалась слишком большой, хотя сама форма фильтровалась (а отчет по ней просто не открывался).
Но, видимо, да, придется сделать, как Вы говорите. Ну или поэкспериментирую со своим вторым вариантом.

Цитата Сообщение от Jamaica Посмотреть сообщение
При открытии экземпляра формы создавайте для нее свою временную панель инструментов
с подпиской на события кнопок, опишите процедуры обработки событий кнопок.
Спасибо, интересный способ. К сожалению, он не решает проблему передачи в отчет полей не нужных для отчета, но нужных для фильтрации. Я просто уже немного продвинулся относительно моего первоначального вопроса и понял что при открытии отчета могу получить фильтр формы с помощью "Forms", но мне не хотелось бы передавать туда все поля формы. Но все равно спасибо, на будущее пригодится.

Цитата Сообщение от Панург Посмотреть сообщение
Сохрани запрос и используй его как источник для формы и отчёта. Если можно использовать фильтр для формы, то какая проблема его использовать для отчёта.
Проблема в том что данные формы не включают в себя все данные для отчета, а только некоторые. Поэтому данные для отчета надо объединять со многими данными формы и конструкция уж больно громоздкая получается. И я вот думал как бы ее сократить. Но, видимо, по простому никак, только по сложному. Тогда уж лучше громоздкая конструкция. Спасибо за обсуждение!
0
Мы один, давай на "ты"
3632 / 1335 / 326
Регистрация: 16.06.2016
Сообщений: 3,179
07.03.2017, 04:14 10
Цитата Сообщение от Al8 Посмотреть сообщение
Я просто уже немного продвинулся относительно моего первоначального вопроса
Дальше ты поймёшь что перемудрил и всё решается гораздо проще.
1
07.03.2017, 04:14
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.03.2017, 04:14
Помогаю со студенческими работами здесь

Запуск формы с данными из другой подчиненной формы!
Есть форма Поиск. В ней подчиненная форма с результатами. Надо при нажатии кнопки Изменить...

К фильтру применить ещё один фильтр (с динамическим обновлением формы)
Проблема заключается в том, что необходимо после каждого действия по изменнённым контролам...

Просмотр отчета с формы
Добрый день. Помогите новичку пожалуйста. Как сделать чтобы отчет из формы выдавался на экран...

Создание отчета из формы
Форма заполняется на основе запроса (форма ПроцентовкиФ). Возникает вопрос - как создать на основе...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Как подключить JavaScript файл в другом JavaScript файле
InfoMaster 20.01.2025
В современной веб-разработке организация кодовой базы играет ключевую роль в создании масштабируемых и поддерживаемых приложений. Модульность и правильное структурирование кода стали неотъемлемыми. . .
Как откатить изменения в исходниках, не внесенные в Git
InfoMaster 20.01.2025
При работе с системой контроля версий Git разработчики часто сталкиваются с необходимостью отменить внесенные изменения в исходном коде. Особенно актуальной становится ситуация, когда изменения еще. . .
В чем разница между px, in, mm, pt, dip, dp, sp
InfoMaster 20.01.2025
В мире цифрового дизайна и разработки интерфейсов правильный выбор единиц измерения играет ключевую роль в создании качественного пользовательского опыта. История развития систем измерений для. . .
Как изменить адрес удалённого репозитория (origin) в Git
InfoMaster 20.01.2025
В терминологии Git термин origin является стандартным именем для основного удаленного репозитория, с которым взаимодействует локальная копия проекта. Когда разработчик клонирует репозиторий с. . .
Как переместить последние коммиты в новую ветку (branch) в Git
InfoMaster 20.01.2025
При работе над проектом часто возникают ситуации, когда необходимо изолировать определенные изменения от основной линии разработки. Это может быть связано с экспериментальными функциями, исправлением. . .
Как вернуть результат из асинхронной функции в JavaScript
InfoMaster 20.01.2025
Асинхронное программирование представляет собой фундаментальную концепцию в JavaScript, которая позволяет выполнять длительные операции без блокировки основного потока выполнения программы. В. . .
Какой локальный веб-сервер выбрать
InfoMaster 19.01.2025
В современной веб-разработке локальные веб-серверы играют ключевую роль, предоставляя разработчикам надежную среду для создания, тестирования и отладки веб-приложений без необходимости использования. . .
Почему планшеты и iPad уже не так популярны, как раньше
InfoMaster 19.01.2025
Эра революционных инноваций История планшетов началась задолго до того, как эти устройства стали привычными спутниками нашей повседневной жизни. В начале 1990-х годов появились первые прототипы,. . .
Как самому прошить BIOS ноутбука
InfoMaster 19.01.2025
BIOS (Basic Input/ Output System) представляет собой важнейший компонент любого компьютера или ноутбука, который обеспечивает базовое взаимодействие между аппаратным и программным обеспечением. . .
Какой Linux выбрать для домашнего компьютера
InfoMaster 19.01.2025
Современные реалии выбора операционной системы В современном мире выбор операционной системы для домашнего компьютера становится все более важным решением, которое может существенно повлиять на. . .
Как объединить два словаря одним выражением в Python
InfoMaster 19.01.2025
В мире программирования на Python работа со словарями является неотъемлемой частью разработки. Словари представляют собой мощный инструмент для хранения и обработки данных в формате "ключ-значение". . . .
Как без исключения проверить существование файла в Python
InfoMaster 19.01.2025
При разработке программного обеспечения на Python часто возникает необходимость проверить существование файла перед выполнением операций с ним. Это критически важная задача, которая помогает избежать. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru