I was having a similar issue trying to figure out how to pass query parameters to a chart object on my bound report. I designed my query SQL selection in query designer and rather than parametize the query, assigned fully qualified report field references to my query. To do this, I added unbound fields to my report for the parameters that would complete my query. In my case, a start and an end date value. In the report open event, I manipulate the control source of each unbound field (serving as my parameters).
Me.param1.controlsource = "=CDate('" & str_p_RptStart & "')"
The unbound field on the report can be named whatever; I'm using param1. By the way, I hide these fields on my report. On the report, I assign my SQL select criteria to my chart objects RowSource parameter which includes in the Where clause a fully qualified reference to my unbound field.
SELECT MyField FROM TableName WHERE Created > [Reports]![MyReportName]![param1]
Now, the only thing I need to do is have my code set a date in the public variable str_p_RptStart. My chart object on the report changes everytime I run the report based on the new date criteria. Although I use a dialog to capture the dates, it could all be performed from within the report Open event.
I hope this helps someone. It sure would've saved me hours of research and lots of trial and error. Seems so simple once it works. If anyone needs more info, let me know. Also, I don't claim to be an expert at VBA, SQL, or Access. I would be more than happy to have someone tell me there is a better way.