Как установить начальный выбор элементов управления в отчете MS Access при его загрузке?

#ms-access

#ms-access

Вопрос:

У меня есть отчет MS Access 2007, основанный на запросе, который имеет некоторые параметры, которые можно изменить, выбрав значения в списках, которые находятся в заголовке отчета. Поток выглядит следующим образом:

  • Пользователь выбирает параметры в списках
  • Пользователь нажимает кнопку «Создать». К нему прикреплено событие OnClick, которое просматривает все списки, выбирает их выбор, собирает инструкцию SQL и устанавливает ее в качестве источника для базового запроса MS Access.
  • Единственный способ, который я смог найти для правильного обновления отчета, — это сначала выполнить Me.Requery , а затем закрыть и снова открыть отчет. Просто Me.Requery этого было недостаточно.
  • После повторного открытия отчета все выбранные элементы в списках теряются. Но у меня они сохранены в переменной, и я мог бы вернуть их обратно, но я не могу найти подходящее событие.

Я пробовал Report Load , Open , Current events — ни один из них не работал. Для Current события я вижу, что выбор устанавливается, но затем немедленно отменяется. Может ли кто-нибудь подсказать мне, какое другое событие я мог бы попробовать или, может быть, немного другой подход все вместе?

Ответ №1:

Мне кажется, это можно было бы сделать проще, предоставив пользователю форму с этими элементами управления в виде списка, позволить ей сделать там свой выбор, а затем передать критерии выбора в качестве параметра WhereCondition в DoCmd.OpenReport.

На этой странице параметром whereecondition является «Строковое выражение, которое является допустимым предложением SQL WHERE без слова WHERE«.

Комментарии:

1. Согласен, но это делает интерфейс неуклюжим — вам нужно что-то выбрать здесь, а затем посмотреть результаты там.. Я бы хотел, чтобы все было максимально простым в использовании, иначе мои «пользователи» просто воздержатся от использования БД (у них есть такая опция — просто придерживаться старого доброго списка Excel)

2. Как насчет наличия формы (возможно, непрерывной), содержащей КАК параметры, ТАК И результаты параметризованного запроса? Это может быть лучшим пользовательским интерфейсом для ПРОСМОТРА данных на экране. И затем вы можете создать отчет (и добавить кнопку печати в форму), если ваши пользователи хотят, чтобы распечатка выглядела лучше, чем прямая распечатка самой формы.