Проблемы с группировкой и сортировкой подотчетов MS Access - PullRequest
0 голосов
/ 04 февраля 2012

тянул меня за волосы с этим. Искал везде и не могу заставить кого-либо работать. Вот мой сценарий:

У меня есть отчет с несколькими подотчетами из связанных таблиц. Я хотел бы сгруппировать подотчеты для сортировки по заданному полю на основе значения переменной с именем SORT_BY и принудительно разрывать страницу для каждого значения. То есть группировать подотчет по ItemDescription или ItemLocation. Переменная SORT_BY задается в диалоге пользовательских настроек. (да, я использую его как константу, но пользователь может изменить его)

Теперь я хочу, чтобы пользователь мог предварительно просмотреть отчет перед его печатью. У меня есть отчет запускается в режиме ReportView. Это позволяет мне разместить кнопку «Печать» и кнопку «Закрыть» в заголовке отчета (которые не печатаются). Я настроил это так, потому что пользователь заблокирован от обычной «ленты» и других элементов управления, поэтому я должен предоставить кнопки. Кнопки не отображаются в режиме PrintPreview.

Очевидно, мне нужно выполнить это через VBA. Я не могу заставить работать настройки GroupLevel. Я пробовал функцию CreateGroupLevel безрезультатно. Пробовал с существующими группами и без существующих групп. Я попытался отказаться от идеи группы и просто попытался отсортировать подотчеты, используя свойство OrderBy, но ничего не работает. Я схожу с ума.

У кого-нибудь есть предложения ... кроме как сдаться? : -)

ОБНОВЛЕНИЕ: Я пробовал функцию CreateGrouplevel перед открытием основного отчета. То есть откройте каждый вложенный отчет в режиме конструктора, добавьте группу, закройте подчиненную форму, а затем откройте основной отчет. Однако, когда я пытаюсь реализовать функцию CreateGroupLevel, я получаю ошибку:

Ошибка времени выполнения «2154»: Эту функцию нельзя вызывать, когда открыта панель «Группа», «Сортировка» и «Всего».

Я не понимаю этого. Вот мой код:

DoCmd.OpenReport strReport, acViewDesign
intGroupLevel = CreateGroupLevel(strReport, "FluorescentDescription", True, False)
DoCmd.Close acReport, strReport

Мысли

OOOPS!

Хорошо, так что я обнаружил ошибку «2154». Действительно глупо, если вы когда-либо включали Группу, Сортировку, Общее окно во время редактирования отчета, он будет автоматически включаться каждый раз, когда вы входите в представление конструктора для этого отчета, пока вы физически не отключите его. Странный. Все еще теряю это.

1 Ответ

0 голосов
/ 06 февраля 2012

Я уверен, что кто-то исправит меня, если я ошибаюсь, однако я не думаю, что использование кнопок в отчете будет работать.Почему бы не создать свою собственную панель инструментов для отображения, которая содержит Print and Close

...