Я делал через условные выражения, скрывая шрифт с помощью заливки, если установлено поле “Скрыть”:
Поле “Скрыть” рассчитывается с помощью пары функций и глобальной переменной:
Public ПоследнийНомерЗаказаДляСкрыть
Public Function ЗакраситьЛиНомерЗаказа(НомерЗаказа)
' если текущий номер заказа не равен последнему
' ПоследнийЗакрашен = не ПоследнийЗакрашен
' ПоследнийНомерЗаказа = НомерЗаказа
'
' если последний закрашен, то закрашиваем
' иначе не закрашиваем
'
If НомерЗаказа <> ПоследнийНомерЗаказа Then
ПоследнийЗакрашен = Not ПоследнийЗакрашен
ПоследнийНомерЗаказа = НомерЗаказа
End If
ЗакраситьЛиНомерЗаказа = ПоследнийЗакрашен
End Function
Public Function СкрытьЛиНомерЗаказа(НомерЗаказа)
' если текущий номер заказа не равен последнему
' ПоследнийЗакрашен = не ПоследнийЗакрашен
' ПоследнийНомерЗаказа = НомерЗаказа
'
' если последний закрашен, то закрашиваем
' иначе не закрашиваем
'
If НомерЗаказа = ПоследнийНомерЗаказаДляСкрыть Then
СкрытьЛиНомерЗаказа = True
Else
СкрытьЛиНомерЗаказа = False
End If
ПоследнийНомерЗаказаДляСкрыть = НомерЗаказа
End Function
Функция СкрытьЛиНомерЗаказа используется в запросе с параметрами, который создает промежуточную таблицу:
Созданная промежуточная таблица, потом соединяется со всеми остальными нужными для вывода в форму таблицами:
Кажется, что не сложно, пока не начнешь все это описывать. Может кому-нибудь пригодится?