ACC2000: How to Use Code to Change a Report's Printer
ID: Q208840
|
The information in this article applies to:
Advanced: Requires expert coding, interoperability, and multiuser skills.
SUMMARY
You can change the printer for a report or form in two ways:
- You can change the Windows default printer.
- You can set the PrtDevNames and PrtDevMode properties.
The information in this article supplements the Microsoft Access Help topic about the PrtDevNames property.
MORE INFORMATION
Method 1: Changing the Microsoft Windows Default Printer
In the Page Setup dialog box, you can select whether forms or reports are printed by either a default printer or a specific printer. If you select a default printer, the form or report is printed to the Windows default printer. If you want to change to another default printer, you must change the Windows default printer.
To change the Windows default printer by using Visual Basic code, use WriteProfileString to change the Device= entry of the Windows section of the Win.ini file.
Method 2: Setting the PrtDevNames and PrtDevMode properties
The PrtDevNames property stores the name of the printer, and the PrtDevMode property stores the driver information. You need to change both of these properties in order to change the printer driver. If the PrtDevMode property does not match the PrtDevNames property (that is, the PrtDevMode property describes a different driver than the PrtDevNames property) a General Protection (GP) Fault may occur.
To change the printer driver, you must do the following:
-
Open a form or report in Design view.
-
Set the PrtDevNames property.
-
Retrieve and set the PrtDevMode property.
In order to set the PrtDevMode property to the appropriate structure, you must obtain the driver information. You can obtain this information in several ways:
- Retrieve the information from a previously saved form or report that uses the printer that you want.
- Call the driver and retrieve the structure. In order to call the driver, you need a separate DLL. This is because you must declare calls to functions in outside files ahead of time and the driver name will not be known. Instead, call a DLL that determines the correct printer driver to call and retrieves the DevMode structure.
-
Use the Windows Print Common Dialog.
REFERENCES
For more information about the PrtDevMode and the PrtDevNames properties, click Microsoft Access Help on the
Help menu, type "PrtDevMode, PrtDevNames" in the Office Assistant or the Answer Wizard,
and then click Search to view the topic.
Also, see the following Web site:
http://www.microsoft.com/AccessDev/Articles/GetzCh10.HTM
For more information about WriteProfileString, the Win.ini, and the Default
Printer in Windows, consult the Microsoft Developers Network CD-ROM
(MSDN).
Additional query words:
Keywords : kbprint kbdta PtrSetup
Version : WINDOWS:2000
Platform : WINDOWS
Issue type : kbhowto
Last Reviewed: May 13, 1999