VBA, MS Access MS Access в примерах

Автоматический перенос раздела отчета на следующую страницу

    Допустим отчет содержит два подчиненных отчета переменной высоты. Один (допустим) находится в заголовке главного отчета а другой в его области данных. Иногда оба отчета помещаются на одной странице, иногда нет, и тогда необходимо печатать второй с новой страницы.  Для этого "вешаем" на событие ПЕЧАТЬ (Print) заголовка главного отчета - подобную процедуру, которая измеряет высоту всего отчета и сверяет ее с максимально допустимой, и если она больше - область данных отчета печатается с новой страницы.  

Private Sub ReportHeader_Print(Cancel As Integer, PrintCount As Integer)

'Перенос следующей области отчета на следующую страницу в зависимости от высоты всего отчета
'------------------------------------------------------------------------
    'Debug.Print Me.Height
    If Me.Height = 8200 Then                   'Больше доступной высоты страницы
        Me.ReportHeader.ForceNewPage = 2       'см справку по ForceNewPage
    End If
End Sub
Назад ToTop
L.E. 24.07.2019
Рейтинг@Mail.ru