@ HansUp при передаче имени отчета в виде строковой переменной (а не строкового литерала, как в вашем коде), я получаю ошибку времени выполнения 2451 - «Введенное вами имя отчета« reportName »написано с ошибкой или относится к отчет, который не открыт или не существует ". Как и OP, я также использую MS Access 2010.
Мое решение для ссылки на отчет из формы с использованием строковой переменной для имени отчета заключается в использовании синтаксиса в скобках: Отчеты (здесь переменная имени отчета о строке)
Пример:
Public Sub Set_Report_RecordSource(reportName As String, datasourceQueryName As String)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Purpose: Sets a report's recordsource programmatically. Especially useful
' for a report that is used by many forms.
' Params:
' reportName = Report whose RecordSource needs to be set.
' datasourceQueryName = The query name that will return records to display
' by the specified report (reportName).
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
DoCmd.OpenReport reportName:=reportName, View:=acViewDesign
Reports(reportName).RecordSource = datasourceQueryName
DoCmd.Close ObjectType:=acReport, ObjectName:=reportName, Save:=acSaveYes
End Sub