Задача достаточно сложная, так как при открытии отчета вызывается только 1 страница и ее события. Выход. Попытаться при открытии отчета перейти на последнюю страницу. Варианты.
1. SendKeys "{END}". Работает прекрасно, но только в начале открытия отчета. Если масштаб не вписывается в окно, то не работает.
2. Используем клавиши навигации. Может и не сработать на больших отчетах SendKeys "{F5}" SendKeys "1000" SendKeys "{ENTER}" 3. Используем промежуточный вывод. Недостаток - лишние данные. DoCmd.OpenReport "ReportName", acViewPreview DoCmd.OutputTo acOutputReport, "ReportName", acFormatRTF, "ReportName.rtf", False DoCmd.Close acReport, "ReportName", acSaveNo
Еще вариант для тестирования. Печать последней страницы stDocName = "RptLumpSum" pageNumber = Reports!RptLumpSum.[Pages]
DoCmd.OpenReport stDocName, acViewPreview DoCmd.SelectObject acReport, stDocName, False DoCmd.PrintOut acPages, pageNumber, pageNumber
или
SendKeys "{F5}999~"
Еще вариант для тестирования. Использовать меню. Например,
Dim cbc As CommandBarControl Set cbc = CommandBars("Print Preview").FindControl(id:=1733, Recursive:=True) ' см. в примерах la_menu.mdb
DoCmd.RunCommand acCmdZoom75