В форме MSAccess с использованием непрерывных форм, как я могу получить альтернативные цвета строк путем группировки данных?

552
Mike M

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

Есть ли способ получить доступ к распознаванию группировки в форме и затем применить там альтернативный цвет строки, а не просто к любой другой строке?

1

1 ответ на вопрос

1
Mike M

В Access нет способа распознавать группировки в формах в пользовательском интерфейсе. (это в отчетах)

Тем не менее, существует Событие в разделе «Сведения», которое обеспечивает соответствующий хук для форматирования даже без интерфейса «Группировка».

enter image description here

Поскольку существует целочисленный индекс для групп, и мы хотим чередовать по группам, легко просто проверить четные / нечетные группы и установить цвета фона.
Нам нужно форсировать «Backcolor» и «AlternateBackColor». Таким образом, предполагая, что групповой индекс помещается в текстовое поле с именем IndexColumnBox, он может быть как ...

Private Sub Detail_Paint()  If Me.IndexColumnBox.Value Mod 2 = 0 Then Detail.BackColor = &HDDDDDD Detail.AlternateBackColor = &HDDDDDD  Else Detail.BackColor = &HFFFFFF Detail.AlternateBackColor = &HFFFFFF  End If  End Sub 

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

Если кто-то может найти лучшее событие, чем Detail_Paint, это может быть интересно. Это вызывает побочные эффекты при изменении группировок, например, в моем случае, когда это подчиненная форма, и я изменяю записи в родительском элементе. Mike M 7 лет назад 0