Print Access Form on one page

Hello. I have the below code on click of a 'print' button. This works fine, however, the form prints on about 5 different pages. Is there a way to force fit to page? Or a similar property? I can't seem to find anything.

Dim MyForm As Form
    Set MyForm = Screen.ActiveForm
    DoCmd.SelectObject acForm, MyForm.Name, True
Printer.ItemLayout = acPRVerticalColumnLayout
    DoCmd.SelectObject acForm, MyForm.Name, False
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Jeffrey CoachmanMIS LiasonCommented:
Unlike MS Word, ...There is no "Print to fit" option in Access for forms.
1. Try an app like this perhaps:
2. Reduce the size of the form
3. Reduce the amount of data visible on the form
4. Try Printing a "Report" instead of printing the form.
...with Reports you have a lot of options regarding printing (page breaks, Grouping, ...etc)

But my guess is that if your form takes up 4 pages, ...even if this did work, ...the output would be so compresses as to not be very readable.

In my experience, any "form" that is 4 pages long needs to have its design rethought.
So if none of these options work for you, ...then post a screenshot of this gigantic form, so we can analyze...

Access is not optimized to print forms.  forms are for viewing, reports are for printing.  This is especially true if the form has subforms.  If a subform is sized to fit 8 rows on the main form and you have to scroll to see more, the printed version will not expand.  you will never see more than 8 subform records whereas on a report, the subreport will expand infinitely to show as many rows as exist.
acramer_dominiumAuthor Commented:
Through trial and error I got the below to work

    Printer.Orientation = acPRORLandscape
    Printer.LeftMargin = 0.05
    Printer.RightMargin = 0.05
    Printer.BottomMargin = 200
    DoCmd.SelectObject acForm, "frmLookupRL"
    DoCmd.PrintOut acSelection

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Jeffrey CoachmanMIS LiasonCommented:
Your original question was how to print the form...
In your solution, you appear to have worked around this by printing the "selection"

As Pat stated, ...this could have all been done with a report (and a bit of "filtering" for the selected record)

But I am glad you got it going.

acramer_dominiumAuthor Commented:
Found it on my own through trial and error.
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Microsoft Access

From novice to tech pro — start learning today.