Ok then:
Create a new general module, and on the declarations page dimension a variant array. (I've used a 10 element array but it can be any size, the smaller the better to efficiently use memory.) Use a variant array because you need it to hold any type of data.
Dim arrParameter(10)
Create a new Sub Procedure which allows you to set the values of the array such as:
Public Sub SetParam(ByVal InputVal, ByVal ParamID)
arrParameter(ParamID) = InputVal
End Sub
Where the InputVal is the value of the parameter, and ID is the parameter number you will be setting.
Create a similar Function to retreive the value of the parameter from the array:
Public Function GetParam(ByVal ParamID)
GetParam = arrParameter(ParamID)
End Function
Then in your query for the report where you would normally set a parameter in the criteria section simply place a call to the function to get a parameter as in:
=GetParam(X)
Where X = 1 or 2 or 3 and so on for the number of parameters for the query.
Then in your VB code, prior to opening the report, simply call the SetParam subprocedure for each parameter of the report with the values of the parameters you want to the report to use, as in:
Public Sub PrintRpt(BeginDate, EndDate)
Call SetParam(BeginDate, 1)
Call SetParam(EndDate, 2)
DoCmd.OutputTo acOutputReport, "ReportName", "Snapshot Format (*.snp)", "C:\ReportName.snp"
End Sub
Job Done!
Example code is available, just let me know.
Ben