Something strange there. A combo is for selecting one value from a list. If you're simply going to use the entire list, might as well just use the source that the combo list comes from and iterate through that. I suppose you could use the .Row property of a combo box rowsource but I'd guess that you have to know how many values are in the list to avoid trying to move beyond the last one. Simpler to use a query (if not the query for the combo) that provides these values, create a recordset of those values and loop through them, outputting your report. For that part, I'd use a sub and pass the report name to it and do the output rather than repeat the lines of code many times for the output part.