2013-11-11 2 views
1

Я просмотрел различные форумы, чтобы найти пример условного форматирования, в котором используются значения для цвета фона, которые хранятся в поле в таблице.MS Access условное форматирование значений, хранящихся в поле таблицы?

В моей работе используются ежемесячные цвета, чтобы положить предметы на половину продажи, 12 месяцев 12 цветов, поэтому 1-й от использования ленты не будет работать. (О, да, ее MS OFFICE 2010 профессиональная версия Access)

Я буду печатать штрих-коды с названиями отделов, ценой, а затем названием месяца. Название месяца будет иметь серый фон для ноября. В декабре все серые метки закрыты.

Проблема может быть решена в VBA, поскольку этот пример из access-programmers.co.uk показывает, но он жестко закодирован в модуль. То есть

Select Case Me.CarID 'the name of the control with the value to be tested 
    Case "TILX" 
    Me.TextBoxName.BackColor = 12632256 '(gray) 
    Case "GATX" 
    Me.TextBoxName.BackColor = vbRed 
    Case Else 
    Me.TextBoxName.BackColor = RGB(255, 255, 255) '(white) 
End Select 

У меня есть месяц таблица так:

MonthCode MonthName MonthColor 
--------- --------- ---------- 
11   November  12632256 

Таким образом, цветовые значения сохраняются динамически (в случае персик бумаги или розовые чернила в миллиард раз дешевле в будущем), но фон свойство текстового поля MonthName не имеет построителя событий только выбор поддона (или я бы постарался =[monthTable]![MonthColor]).

So,

a. Должен ли я использовать пример VBA и проверять каждый случай? или

b. Могу ли я использовать значение поля в качестве значения uhm в выражении для me.Textbox. MonthName = [MonthColor]?

Я получаю около двадцати непрерывных секунд на компьютере с доступом к нему, чтобы экспериментировать, между моей кассой, ценообразованием, получением и инвентаризацией. Поэтому я по-настоящему ценю ваш предыдущий опыт.

Эрик

ответ

0

Поскольку вы предусмотрительно положить нужные значения цвета в таблицу, все, что вам сейчас нужно, это DLookup(). Например, в обработчике On Format событий Detail группы отчета мы можем сделать

Option Compare Database 
Option Explicit 

Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer) 
    Me.MonthName.BackColor = DLookup("MonthColor", "MonthTable", "MonthCode=" & Month(Me.txtSomeDate)) 
End Sub 

который производит

MonthColors.png

+0

Спасибо за ответы. Очевидно, это сработает для вас. После того, как я начал работать, я понял, что мой отчет основан на запросе, и ни одно из полей не названо так же, как и в «Camel Case»! Поэтому я быстро создал новую таблицу с теми же именами полей, которые я дал в вопросе, и создал отчет в этой таблице. Могли бы вы добавить скриншот, чтобы показать мне, где вы ввели это выражение. для моего отчета нет события On Format в окне инструмента свойств. Существует один именованный формат, но после вставки в него кода он делает некоторые причудливые замены тому, что я вставил. – user2978151

+0

@ user2978151 Вы можете загрузить свою тестовую базу данных из [здесь] (http://wikisend.com/download/309710/rainbow.zip). Он включает макрос, чтобы открыть отчет в режиме предварительного просмотра (чтобы вы могли видеть цвета). Откройте отчет в Design View, чтобы узнать, как он был собран. BTW, свойство 'On Format', о котором идет речь, является свойством' Подробный диапазон 'отчета, а не свойством элемента управления текстовым полем или отчета в целом. –

+0

О! Я нашел его, я признаю, что у меня никогда не было новых свойств в деталях. – user2978151

Смежные вопросы