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

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

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

1 ответ

Решение

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

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

Поскольку существует целочисленный индекс для групп, и мы хотим чередовать по группам, легко просто проверить четные / нечетные группы и установить цвета фона.
Нам нужно форсировать "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

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

Другие вопросы по тегам