1

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

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

1 ответ1

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .