True, true... this will be an issue as in reality your chart is a "cross tab query" and unless the criteria is a row or column heading, we're out of luck...almost...
It's a little more work but the results should be there in the end:
You will need to build a table to contain the data based on the fields you choose in your query. No data inserted.
One Append query that loads the table based on your criteria queries results. No biggy, basically a flip of the query type switch.
You'll also need a Delete query that will clean out the table before each use. That one's a breeze as it's just a matter of taking the TableName* ,putting it in the grid and switching the query type to delete.
Now your chart: It's record source has to be your new table.
You might be best to try making a fresh chart (with a wizard) based off of your new tables data and review it to make sure the results are to your liking. If something is missing just back-track a little and add the info you need through the queries.
When you click the Print/Preview button your code should look something like this:
On Error Goto Err1 'in case of boo boos (technical term)
Forms![NameofForm].visible = False
DoCmd.SetWarnings False 'I don't want warnings
DoCmd.OpenQuery "NameOfDeleteQuery" 'cleans out the table
DoCmd.OpenQuery "NameofAppendQuery" 'adds in the new data
Docmd.OpenReport '.....as before.
Exit1:
DoCmd.SetWarnings True 'turn 'em back on
Exit Sub 'leave this place!
Err1:
MsgBox Err.Number & " "& Err.Description
Resume Exit1 'go back to exit1 after telling me the problem
Really not as bad as it looks and I'm sure you can do it! Keep us posted or write back if you get stuck.

Gord
ghubbell@total.net