I ususally don't let the user print the form (because it never looks as good on paper, plus other reasons). Rather, I create a report and in the OnOpen statement of the report I set the filter properties and OrderBy property equal to what the form is set to (also check to see if the form is in form view or datasheet view). Also, I change the action of the print and print preview buttons so that they open the report assigned to the form. To determine which report to open I use a naming convention. For example, if the activeform is named frmMyForm, then the report that is opened is rptMyForm. Finally, I give the user an option, via the menu bar, to print just the current record. Which, opens the report using the Where argument of the docmd.openreport method.