Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Условное форматирование, задать больше 3 условий 
:(
    Опции темы
Woodlin
Дата 26.1.2011, 08:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 188
Регистрация: 15.7.2009
Где: Челябинская облас ть, г. Пласт

Репутация: 1
Всего: 1



Желаю всем здравствовать!

Скажите, можно ли задать в Условном форматировании больше трёх условий?

Мне нужно установить 4 условия. 

Стандартными методами Формат -> Условное форматирование можно только три условия задать.
В FormatConditions тоже больше трёх не влазит.
Как быть?
PM MAIL ICQ   Вверх
Akina
Дата 26.1.2011, 08:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



В условии форматирования ГДЕ? в каком объекте/контроле?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Woodlin
Дата 26.1.2011, 08:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 188
Регистрация: 15.7.2009
Где: Челябинская облас ть, г. Пласт

Репутация: 1
Всего: 1



Цитата(Akina @  26.1.2011,  11:38 Найти цитируемый пост)
В условии форматирования ГДЕ? в каком объекте/контроле?

... дико извиняюсь, в поле на форме.
PM MAIL ICQ   Вверх
Akina
Дата 26.1.2011, 08:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Обработай событие изменения и забабахай туда хоть тыщу условий...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Woodlin
Дата 26.1.2011, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 188
Регистрация: 15.7.2009
Где: Челябинская облас ть, г. Пласт

Репутация: 1
Всего: 1



Цитата(Akina @  26.1.2011,  11:53 Найти цитируемый пост)
Обработай событие изменения и забабахай туда хоть тыщу условий... 

Мне кажется в моём случае это не подойдёт.

У меня табличная форма и в зависимости от значения поля Статус (может иметь значения от 0 до 4) нужно заливать записи определенным цветом, когда Статус=0 условное форматирование не нужно. 
PM MAIL ICQ   Вверх
Akina
Дата 26.1.2011, 11:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Значит, вместо табличной формы используй отображение в гриде, позволяющем больше условий.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
bopoha
Дата 29.1.2011, 00:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1283
Регистрация: 10.5.2006
Где: Беларусь, Минск

Репутация: 21
Всего: 21



Условное форматирование можно добавлять программно. См. атрибут у поля FormatConditions. Не помню сколько можно добавить.

Вот пример:
Код

Private Sub AddConditions(ParamArray masImCtl() As Variant)
'-- добавляет условия к перечисленным полям
On Error GoTo Err_
    Dim i As Integer
    
    Dim ctl As Control
    Dim oFormatConditions As FormatConditions
    Dim format As FormatCondition
    
    For i = LBound(masImCtl) To UBound(masImCtl)
        Set ctl = Me(masImCtl(i))
        Set oFormatConditions = ctl.FormatConditions
        
        With oFormatConditions
            .Delete
            '-- формат для заявки
            Set format = .Add(acExpression, , m_nakladnaya_frm.GetFilterByDocType(docZayavka))
            format.BackColor = c_colorDocZayavka
            '-- формат для счет-фактуры
            Set format = .Add(acExpression, , m_nakladnaya_frm.GetFilterByDocType(docSchetFaktura))
            format.BackColor = c_colorDocSchetFaktura
        End With
    Next i
Exit_:
    Exit Sub
Err_:
    Call mc_Log.CM_LogErr(Me.Name & "->AddConditions()")
    Call mc_Err.CM_ErrShowMsg
    Resume Exit_
End Sub

PM MAIL WWW ICQ Skype GTalk   Вверх
Woodlin
Дата 10.3.2011, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 188
Регистрация: 15.7.2009
Где: Челябинская облас ть, г. Пласт

Репутация: 1
Всего: 1



bopoha, взял за основу Ваш пример.

Получился код:
Код

Public Sub AddConditions(ParamArray masImCtl() As Variant)
'-- добавляет условия к перечисленным полям
On Error GoTo Err_
    Dim i As Integer
    
    Dim ctl As Control
    Dim oFormatConditions As FormatConditions
    Dim format As FormatCondition
    
    For i = LBound(masImCtl) To UBound(masImCtl)
        Set ctl = Me(masImCtl(i))
        Set oFormatConditions = ctl.FormatConditions
        
        With oFormatConditions
            .Delete
            '-- формат для заявки
            Set format = .Add(acExpression, , "Статус=1")
                format.BackColor = 15658734
                format.ForeColor = RGB(0, 0, 225)
            
            '-- формат для счет-фактуры
            Set format = .Add(acExpression, , "Статус=2")
                format.BackColor = 15658734
                format.ForeColor = RGB(0, 225, 0)
            
            Set format = .Add(acExpression, , "Статус=3")
                format.BackColor = 15658734
                format.ForeColor = RGB(225, 0, 0)
            
'            Set format = .Add(acExpression, , "Статус=4")
'                format.BackColor = 15658734
'                format.ForeColor = RGB(225, 0, 0)
            
        End With
    Next i
Exit_:
    Exit Sub
Err_:
    Call mc_Log.CM_LogErr(Me.Name & "->AddConditions()")
    Call mc_Err.CM_ErrShowMsg
    Resume Exit_
End Sub



... и всё равно больше трёх условий никак не получается


Akina, Вы упомянули про грид. Может дадите ссылку где про него почитать применительно к Access
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS Access"
Akina
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] и [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS Access | Следующая тема »


 




[ Время генерации скрипта: 0.0919 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.