I think A2010 has a featue for that kind of thing and I don't know/use A2007.
In any version you can use a form with a text box to enter the value you want and set the report's Filter or OrderBy property to anything and the report will recalculate. The report can the use the value from the form conditionally based on the filter or
OrderBy property. To tell if the report was being restarted from the form, I use a button on the form to set the property. E.g.
If Reports!![the report].Filter = "" Then
Reports![the report].Filter = "True" 'has no effect
Reports![the report].OrderBYOn = True Else
Else
Reports![the report].Filter = Reports![the report].Filter & ",True"
End If
Then in the report header section's Format event procrdure, you can do things like:
If Right(Me.Filter, 4) = "True" Then
Me.txtParm = Forms!Form1.Text0
Else
Me.txtParm = Me.InterestRate
End If
Make the InterestRate text box invisible and use the txtParm text box to display the rate and in the calculations.
All in all, I think this kind of devious stuff is rarely worth the effort and if you can devise a form that will present the data in an acceptable way, it's a better way to go. But if you have a real need to use a report and not close and reopen it (with
the changed interest rate passed through OpenArgs), then this kind of trick can be done. It does seem to be a little faster but that may be just because you don't have to click on the report's close button.