Этого можно добиться, просто передав правильный оператор SQL в свой отчет.Это можно сделать с помощью вступительных аргументов.
Если вы действительно хотите, чтобы в отчете был такой же набор записей, какой вы видите в своей форме, то, что вам нужно сделать, зависит от того, как вы открыли форму,или как вы фильтруете свою форму.Вы действительно можете использовать идентичный объект набора записей DAO и установить для объекта отчета набор отчетов как копию или клон объекта набора записей формы.Тем не менее, это может не потребоваться для получения результатов, которые вы ищете.
Решение № 1
Если ваша форма использует запрос или оператор SQL, вы можете использовать это решение.
Код в вашей форме:
DoCmd.OpenReport "rptReportName", acViewPreview, , , acWindowNormal, Me.RecordSource
Код в вашем отчете:
Private Sub Report_Open(Cancel As Integer)
Me.RecordSource = Nz(Me.OpenArgs, "")
End Sub
Решение # 2
Используйте это решение, если ваша формаиспользует свойство фильтра формы для фильтрации до правильного набора записей.Я предполагаю, что вы хотите передать это условие фильтрации в отчет.Вам нужно будет настроить отчет так, чтобы он использовал тот же RecordSource, что и ваша форма (или он должен по крайней мере содержать таблицу / поля, которые будут включены в ваш оператор фильтра).Проблема заключается в том, что передача источника записей вашего отчета в форму не пропускает фильтр, который вы могли бы установить в форме.
DoCmd.OpenReport "rptReportName", acViewPreview, , Nz(Me.Filter, ""), acWindowNormal
В качестве последнего примечания невозможно установить отчетсвойство набора записей.Вы можете назначить источник записей, как я уже показал (источник записей - это имя таблицы, имя запроса или оператор SQL), но вы не можете использовать свойство Recordset, если база данных не является проектом данных доступа, который я не рекомендую использовать привсе.
Edit1
Из исходного поста не было ясно, какую проблему пытался решить ОП.Я неправильно предположил, что у него возникли проблемы с отображением в отчете тех же записей, что и в его форме.Похоже, что операционному оператору скорее нужно предпринять две поездки на сервер для получения записей.
Поскольку вы не можете установить значение набора записей в отчете о доступе, лучшим вариантом может быть создание локальной таблицы доступа и простоиспользуйте его как временную таблицу.Я не знаю, каков размер вашего набора записей.Если он достаточно большой (более 5000 записей), это решение может быть не очень хорошей идеей.Одна проблема, о которой я могу подумать, заключается в том, что это приведет к тому, что со временем файл приложения внешней базы данных будет раздуваться, если у вас не будет настройки файла для запуска Compact и Repair при закрытии.