A family of Microsoft relational database management systems designed for ease of use.
Question: Do you have to have the data assembled before you initiate the opening of the report?
No, a report's recordset is not loaded at this stage, so you can manipulate the data at will. In my demo, in Method 2, the unbound form is opened in dialogue mode, so this pauses the opening of the report, which is resumed once the form is closed. This may give you the positioning problems which you encountered, however. Method 1 uses a different approach; in this the code checks to see if the form is open, and if not, transparently cancels the opening of the report if not, and opens the form, passing the report name to it via the OpenArgs mechanism. The report is then reopened from the form after entering the data. To the user it appears as if the report opens only once after entering the parameters via the form.
The report can be opened by any means, including from the navigation pane. With method 1, however, as cancelling the opening of the report raises an error if the report is opened by means of the OpenReport method or macro action this would raise an error, so this needs to be handled. As no developed application would expose the navigation pane to a user of course, the error handling is essential. This is illustrated in my demo.
The other option of course, and the most commonly used, is simply to open the form first and then open the report from the form after entering the parameters. The MultiSelect demo in my same OneDrive folder illustrates various ways of filtering or restricting a report's output in this way.