The proposed offer is 100% DELETE a parameter from the request. This not only solves your problem, but also means that you can use the request for code, other forms and not ruin the whole design, because one silly form is not open (therefore, it is VERY reason for your question).
So, remove the parameters from the request. It also means that your report will no longer need some form that is already open. And again, if some dumb form doesn't open, why doesn't your report work?
So delete the parameter. Now, in your form that opens the report, it can pass the filter, and use what is called the where clause more. This "where" clause was developed in MS-access to solve the problem of knowing in advance which parameters and filters you need. This happens at runtime, and so MANY DIFFERENT forms can invoke and open this report.
Now in the form that invokes and opens the form, you go:
Docmd.OpenReport "rptSuppliers",acViewPreview, , _ "SupplierCode = " & me.SupplierCode
So, in the above example, the parameter is created on the fly. The big advantage is that tomorrow you can have a different form, open the same report and possibly filter by region.
In the case of passing the NO where clause and the user simply opening the form, no filters will be used, and there will be no queries, and all entries will be displayed. This is probably your best approach.
However, if for some strange reason you still think it is necessary, you need to have a hint for a report when one silly form simply does not open, then put the following code in the open form event.
If CurrentProject.AllForms("form1").IsLoaded = False Then Me.Filter = "SupplierID = " & InputBox("Enter Supplier ID") Me.FilterOn = True End
However, I would really try to avoid hard-coding some dumb form name in the reporting event that opens. This not only means that your hardcodes depend on some kind of silly form, which is now attached to the report, but if you later copy this report or even copy the original form (or even rename any of these objects), then you have to go to app and hunt for and now find places where you as a developer made dependencies. This approach can significantly increase the cost of maintaining the application and, therefore, should be recommended.
So, the suggestion here is to reset the parameter request. Just create a form or some kind of operating system to run reports. These forms should ask the user for the information you want to filter. Or, as in your case, the linked form and current record provide this information. The beauty of this system is no longer reflected in the report.
Any form, or even any code on the road, can freely pass a pramaeter, and it will not be limited by the ProviderID, but it can be any type of filter or parameter that you want.
Keep in mind that perhaps the user may not want to open this form and may not want an invitation. With your design and question, the user will be forced to enter the parameter value even when starting the report without any open forms and not wanting to be asked to allow them to view all the records in this report.