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

Многоуровневое условное форматирование

05.09.2018, 01:29. Показов 3483. Ответов 36

Author24 — интернет-сервис помощи студентам
Добрый день уважаемые гуру.
Очень требуется Ваша помощь
Есть база заказов с ленточной формой, в которой нужно сделать многоуровневое условное форматирование, то есть:
1. при внесении в поле [РазмерОплаты] значения "100%" - все поля в данной строке должны закрашиваться Жёлтым цветом
2. когда в поле [Отгрузка] (этой же строки) вносится дата, то все поля данной строки должны перекрашиваться в Зелёный цвет
3. когда в поле [ЗаказЗакрыт] (этой же строки) вносится значение "ДА", то все поля данной строки должны перекрашиваться в Оранжевый цвет
4. И самое главное условие, что если в поле [Оплата] вносится значение "БЕЗ ОПЛАТЫ", то все поля данной строки должны перекрашиваться в Красный цвет

Помогите пожалуйста !!!
Вложения
Тип файла: rar Заказы.rar (59.2 Кб, 13 просмотров)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.09.2018, 01:29
Ответы с готовыми решениями:

Условное форматирование
В зависимости от значения поля, меняется цвет, сделано через условное форматирование. Как выделить...

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

Условное форматирование
Здравствуйте уважаемые форумчане! Помогите решить проблему. Есть форма с данными, в каждой...

Условное форматирование
Здравствуйте, недавно начал изучать Access и возник такой нубский вопрос: можно ли в условном...

36
902 / 292 / 50
Регистрация: 02.12.2014
Сообщений: 1,229
05.09.2018, 08:46 2
Если я правильно понял, вы хотите, чтобы ваше "условное форматирование" реагировало именно на СОБЫТИЯ, которые происходят при вводе новых значений в перечисленные поля? То есть, например, ввел пользователь что-то в поле - и строка окрасилась определенным цветом, так?
Я почему уточняю. Условное форматирование, по идее, обрабатывает уже имеющиеся в полях данные, и соответственно раскрашивает всю таблицу исходя из этих данных. И если забить в условное форматирование все перечисленные вами условия, то при выполнении НЕСКОЛЬКИХ условий одновременно - получится ерунда. Исходя из этого мне кажется, что здесь не получится использовать именно встроенное условное форматирование, а нужно писать небольшой код на события изменения данных в перечисленных полях, чтобы при изменении менялись цвета фонов других полей.
1
10483 / 5466 / 1377
Регистрация: 05.10.2016
Сообщений: 15,488
05.09.2018, 08:52 3
Цитата Сообщение от Kkarn Посмотреть сообщение
а нужно писать небольшой код на события изменения данных в перечисленных полях, чтобы при изменении менялись цвета фонов других полей.
... и дальше накладывать форматирование на результат возвращаемый функцией ...
Предупреждение:
при отображение наборов в прибл. 100 000 записей может "тормозить" ...
0
902 / 292 / 50
Регистрация: 02.12.2014
Сообщений: 1,229
05.09.2018, 09:02 4
Насколько я вообще понимаю логику встроенного условного форматирования, там все построено по приоритетам срабатывания правил. То есть если срабатывает правило, которое ВЫШЕ по списку, то остальные игнорятся.

Добавлено через 3 минуты
В целом нужно определиться, какими вы хотите видеть уже имеющиеся в таблице строки? Раскрашенными или нет?

Если при открытии формы строки уже должны быть раскрашенными, то тогда определитесь с приоритетностью обработки ваших правил. Например, если в поле Размер оплаты стоит 100% и ОДНОВРЕМЕННО с этим в поле Заказ закрыт стоит "Да" - то КАКИМ ЦВЕТОМ должна выделяться такая строка - желтым или оранжевым?

Если же изначально при открытии формы все строки должны быть нераскрашенными, то, как я и говорил, нужно прописывать код на события изменений в соответствующих полях.
0
10483 / 5466 / 1377
Регистрация: 05.10.2016
Сообщений: 15,488
05.09.2018, 09:07 5
Цитата Сообщение от Kkarn Посмотреть сообщение
Если же изначально при открытии формы все строки должны быть нераскрашенными, то, как я и говорил, нужно прописывать код на события изменений в соответствующих полях.
Вот я и говорю:
Строить функцию, коя в аргументах имеет значения полей, - которая будет возвращать Integer (допустим)- а дальше - по значению и "красить".
Я бы так пошел ...
(Есть подозрение что так будет быстрее чем накладывание множества условий форматирования)
0
Модератор
Эксперт MS Access
6017 / 2845 / 693
Регистрация: 12.06.2016
Сообщений: 7,644
05.09.2018, 09:10 6
Лучший ответ Сообщение было отмечено Eugeniooo как решение

Решение

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

Eugeniooo,

Сейчас есть возможность задать больше трех условий в УФ?
Раньше не было.

Для решения попробуйте задать эти условия, посмотрите, каков приоритет условий, что преобладает.
И расставьте, исходя из этого, условия в нужном порядке.
1
10483 / 5466 / 1377
Регистрация: 05.10.2016
Сообщений: 15,488
05.09.2018, 09:13 7
Цитата Сообщение от Capi Посмотреть сообщение
И как это осуществится в ленточной форме?
Совершенно в дырочку!
- Никак!
0
Модератор
Эксперт MS Access
6017 / 2845 / 693
Регистрация: 12.06.2016
Сообщений: 7,644
05.09.2018, 09:17 8
А к чему тогда все эти пространные рассуждения про гипотетическую функцию,
возвращающую integer ?
0
902 / 292 / 50
Регистрация: 02.12.2014
Сообщений: 1,229
05.09.2018, 09:18 9
Цитата Сообщение от Capi Посмотреть сообщение
И как это осуществится в ленточной форме?
Упс. Вот про это я как-то и забыл...
Таки да.
Тогда остается именно решать вопрос приоритетности правил "раскрашивания".
0
10483 / 5466 / 1377
Регистрация: 05.10.2016
Сообщений: 15,488
05.09.2018, 09:19 10
Цитата Сообщение от Capi Посмотреть сообщение
А к чему тогда все эти пространные рассуждения про гипотетическую функцию,
возвращающую integer ?
А это по каждой, конкретной, записи... кто идеи не понял - я не виноват ....
0
902 / 292 / 50
Регистрация: 02.12.2014
Сообщений: 1,229
05.09.2018, 09:32 11
Цитата Сообщение от Eugene-LS Посмотреть сообщение
кто идеи не понял
Я вроде как идею понял, но, по сути, оно ведь тоже работать не будет в ленточной форме, или я чего-то недопонимаю?..
Блин, я уже сам запутался.

Добавлено через 1 минуту
Говоря самым простым языком, насколько я понял, получается так:
- если "красить" ячейки прямо из кода ВБА - оно раскрасит ВСЕ ячейки в ленточной форме.
- если "красить" с помощью условного форматирования, то мы можем только забить в него какие-то приоритеты раскрашивания, не более того.
0
Модератор
Эксперт MS Access
6017 / 2845 / 693
Регистрация: 12.06.2016
Сообщений: 7,644
05.09.2018, 09:34 12
Цитата Сообщение от Eugene-LS
кто идеи не понял....
)))
А тем, кто не понял условия задачи, советую посмотреть видео
"сколько грибов в третьем бочонке?".
0
10483 / 5466 / 1377
Регистрация: 05.10.2016
Сообщений: 15,488
05.09.2018, 09:41 13
Цитата Сообщение от Kkarn Посмотреть сообщение
если "красить" с помощью условного форматирования, то мы можем только забить в него какие-то приоритеты раскрашивания, не более того.
Бл...
Пишем функцию по значениям полей (да хоть сотню в аргументах) - возвращает число (1,2,3,4,5,6, ... ) ... внутри сравниваем аргументы как хотим ...
Встраиваем функцию в источник данных ленточной формы - и по возвращаемуму значению "красим"!
Вот и вся идея...
0
Модератор
Эксперт MS Access
6017 / 2845 / 693
Регистрация: 12.06.2016
Сообщений: 7,644
05.09.2018, 09:45 14
Цитата Сообщение от Eugene-LS
по возвращаемуму значению "красим"!
Красим сами поля?
Или же у полей фон прозрачный, а красится поле-подложка?

Второй вариант ясен-понятен.
А первый нет.
0
10483 / 5466 / 1377
Регистрация: 05.10.2016
Сообщений: 15,488
05.09.2018, 09:49 15
Capi, вот чё хотим - то и красим - ибо имеем в источнике данных признак (значение) на который можем "смотреть" ....
0
902 / 292 / 50
Регистрация: 02.12.2014
Сообщений: 1,229
05.09.2018, 09:50 16
))) Мы щас тут сами не хуже, чем в видео про грибы-огурцы, разведем обсуждение...

Я вот вроде бы понимаю, что функция, предлагаемая Eugene-LS, будет, по сути, делать то же самое "расставление приоритетов" и решать, каким цветом в итоге раскрасить строку, правильно?
А вот потом возникает вопрос - ЧЕМ КРАСИТЬ БУДЕМ? тоже из кода ВБА - или же применим к полученному числу все то же условное форматирование?
Как я понимаю, из кода ВБА раскрасить ЛЕНТОЧНУЮ ФОРМУ не выйдет, правильно? поскольку оно раскрасит ВСЕ СТРОКИ.
0
Модератор
Эксперт MS Access
6017 / 2845 / 693
Регистрация: 12.06.2016
Сообщений: 7,644
05.09.2018, 09:52 17
Цитата Сообщение от Eugene-LS
вот чё хотим - то и красим
А хотим-то чё - основные поля или подложку?
0
902 / 292 / 50
Регистрация: 02.12.2014
Сообщений: 1,229
05.09.2018, 09:52 18
А ТС, как здесь часто бывает, опять молчит... А мы тут разводим на пустом месте. Для начала мне хотелось бы именно от него услышать конкретные уточнения, о которых я писал выше...
0
10483 / 5466 / 1377
Регистрация: 05.10.2016
Сообщений: 15,488
05.09.2018, 09:58 19
Цитата Сообщение от Kkarn Посмотреть сообщение
по сути, делать то же самое "расставление приоритетов" и решать, каким цветом в итоге раскрасить строку, правильно?
Хвала Богам! - вы поняли!
Я в восторге!
0
Модератор
Эксперт MS Access
6017 / 2845 / 693
Регистрация: 12.06.2016
Сообщений: 7,644
05.09.2018, 10:07 20
Ответа нет.

Следовательно, делаю вывод - красится поле-подложка, а не основные поля ленточной формы.

Жаль, что ничего нового.
0
05.09.2018, 10:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.09.2018, 10:07
Помогаю со студенческими работами здесь

Условное форматирование в форме
здравствуйте! никогда не приходилось работать с условным форматированием в формах, поэтому прошу...

Про условное форматирование
Ребят, подскажите, можно ли сделать условное форматирование в форме так, чтобы при выполнении...

Условное форматирование не сохраняется в БД
Условное форматирование произвожу кодом vba. Кусок кода: Dim objFrc As FormatCondition...

Условное форматирование в форме
Добрый день. Форма содежит подчиненную таблицу с клиентами и статусами. Как сделать, чтобы стороки...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru