Access 2007 VBA - переименовать отчет после его закрытия? - PullRequest
0 голосов
/ 26 сентября 2011

У меня есть отчет, который генерируется динамически в зависимости от кнопки, нажатой в главной форме, чтобы изменить фильтр, используемый запрос и т. Д. У меня есть DoCmd.Rename, работающий, чтобы переименовать отчет в текущий (динамический)заголовок отчета.Однако, похоже, что после закрытия отчета я не могу переименовать отчет обратно в общее имя.

Использование события Report_Close() не работает;Access сообщает, что отчет все еще открыт и поэтому не может быть закрыт.Использование DoCmd.Close тоже не работает;Я получаю сообщение об ошибке 2501 (действие «Закрыть» было отменено).

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

1 Ответ

0 голосов
/ 27 сентября 2011

Вы говорите, что каждый раз, когда кто-то меняет настройки и открывает отчет, вы хотите сохранить его как новый отчет в Access?

Я бы не рекомендовал это.
Если динамически изменяемые элементы - это просто такие вещи, как фильтр и запрос, почему бы не всегда использовать один и тот же отчет и динамически устанавливать RecordSource?


EDIT:

Хорошо, теперь я понимаю, что вы на самом деле хотите сделать.
Вы можете установить свойство Caption отчета во время выполнения в коде:

Private Sub Report_Open(Cancel As Integer)
    Me.Caption = "Incidents By Assignee"
End Sub

Вы также можете передать текст заголовка из основной формы в отчет:

Передача текста из формы в параметре OpenArgs при открытии отчета:

DoCmd.OpenReport "YourReport", acViewNormal, , , , "Incidents By Assignee"

... и в отчете просто установите Caption на OpenArgs, если он не пустой:

Private Sub Report_Open(Cancel As Integer)

    If Nz(Me.OpenArgs) > "" Then
        Me.Caption = Me.OpenArgs
    End If

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...