UseDefaultPrinter Setting For Access Forms No Longer Exposed in Design View?

Robert S 0 Reputation points
2026-10-09T15:25:26.77+00:00

I have inherited an Access database that is being used as a front-end. One of the users has reported a bug where a specific print function is not respecting the default printer set in Windows. Upon investigation, it looks like whomever made this part of the program utilized some bad design and has designed the print function to print the form containing data instead of a separate report. I am working on converting this form over to a more proper solution, but some searching suggested I change UseDefaultPrinter to True. The only issue is that this is only write-able in Design View, but the property doesn't actually display in the Properties panel. I can still read it via VBA. I assume this got hidden for forms since you shouldn't really be printing them anyway, but since it's a property that may be useful for converting older projects this should still be exposed in design view.

Microsoft 365 and Office | Access | Development
0 comments No comments

1 answer

Sort by: Most helpful
  1. Rukshan edirisinghe 1,885 Reputation points
    2026-10-14T04:52:18.7866667+00:00

    Hi @Robert S

    You're right that it isn't in the property sheet, but there are two ways to set it while you work on the proper report.

    The UI route is the Page Setup dialog. Open the form in Design View, open Page Setup (from the Page Setup tab, or File > Print > Page Setup), go to the Page tab, and under "Printer for [form name]" pick Default Printer instead of "Use Specific Printer". Then save the form.

    If you'd rather do it in code, this sets it in Design View and saves it:

    DoCmd.OpenForm "YourFormName", acDesign
    Forms("YourFormName").UseDefaultPrinter = True
    DoCmd.Close acForm, "YourFormName", acSaveYes
    

    One thing to check afterwards: if any code assigns the form's Printer property (something like Me.Printer = Application.Printers(...)), Access flips UseDefaultPrinter back to False automatically. In an inherited database that's an easy one to miss, so search the module for .Printer.

    Does the print routine use DoCmd.PrintOut on the form, or does it set a printer in code first?

    If this resolved your issue, please consider accepting it as the answer. If the setting won't stick after saving, let me know and I'll be happy to keep helping.

    Reference:

    Was this answer helpful?


Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.