Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Задачка для пятницы - условная закраска полей по условию (А2003)
 
 автор: Дядя Федор   (29.04.2011 в 10:33)   личное сообщение
14 Кб.
 
 

См.вложение.->
Задача
. При условном форматировании в сочетании с расширением полей возникают проблемы полной закраски или "затирания" границ.
Посмотрите пример. Там три варианта.

В идеале нужно:
Закрасить поле по условию, если оно (поле) расширено по данным и обрисовано рамкой.

  Ответить  
 
 автор: kot_k_k   (29.04.2011 в 12:40)   личное сообщение
30 Кб.
 
 

так что ли

  Ответить  
 
 автор: Дядя Федор   (29.04.2011 в 13:03)   личное сообщение
 
 

да нет! так-то нет проблем.
поле цена (где 1000) д.б. закрашено по высоте поля "Naim"
Закрасить поле по условию, если оно (поле) расширено по данным другого поля и обрисовано рамкой.

  Ответить  
 
 автор: kot_k_k   (29.04.2011 в 14:07)   личное сообщение
25 Кб.
 
 

ты до конца не дошел - с фоновым полем, дай ему расширение ДА
поставь туда
=[Naim]
и добавь в обработку


Private Sub ОбластьДанных_Format(Cancel As Integer, FormatCount As Integer)
If Me.Stoim < 500 Then
       FON.ForeColor = vbYellow
       FON.BackColor = vbYellow
Else
         FON.ForeColor = vbRed
    FON.BackColor = vbRed
End If
End Sub

  Ответить  
 
 автор: kot_k_k   (29.04.2011 в 14:14)   личное сообщение
 
 

вот только оно должно быть равным по ширине полю Naim - эт хуже

можно написать обработку поля Naim
1. вычислять длину строки Naim в пикселях (Лукас как то пример показывал)
2. из 1 получить кол-во строк в Naim
3. по ширине поля Stiom загнать туда строку которая даст нужно кол-во строк по высоте

  Ответить  
 
 автор: Дядя Федор   (29.04.2011 в 16:54)   личное сообщение
 
 

спасибо буду рыть в этом направлении
Private Sub ОбластьДанных_Format(Cancel As Integer, FormatCount As Integer)
If Me.Stoim < 500 Then
       FON.ForeColor = vbYellow
       FON.BackColor = vbYellow
Else
         FON.ForeColor = vbRed
    FON.BackColor = vbRed
End If
End Sub 


вот это хорошо!!!!

  Ответить  
 
 автор: Дядя Федор   (03.05.2011 в 09:13)   личное сообщение
 
 

Попробовал. Cрабатывает FON.BackColor ! c размером по горизонтали думаем.

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList