For a number of years I had a query that would print as many labels as I needed for an order, using Allen Browne’s tip below: http://www.allenbrowne.com/ser-39.html
A Better Solution
A simpler and code-free solution uses a query with a record for each label. To do this, you need a table containing a record from 1 to the largest number of labels you could ever need for any one record.
Create a new table, containing just one field named CountID, of type Number (Long Integer). Mark the field as the primary key (toolbar icon). Save the table as tblCount.
Enter the records into this table manually, or use the function below to enter 1000 records instantly.
Create a query that contains both this table and the table containing your data. If you see any line joining the two tables, delete it. It is the lack of a join that gives you a record for each combination. This is known as a Cartesian Product.
Drag tblCount.CountID into the query’s output grid. Use the Criteria row beneath this field to specify the number of labels. For example, if your table has a field named Quantity, enter:
<= [Quantity]
or if you always want 16 labels, enter:
<= 16
Include the other fields you want, and save the query. Use it as the RecordSource for your label report.
It no longer works. I am running Access 2010 on a Windows 7 Pro machine. All updates are current. I wonder if that's part of the problem, an update doesn't allow that to work any longer? I did a repair of my Office Suite and that didn't change anything.
Any ideas?