I didn’t see a good resource for this when I was searching through Google, so I figured I’d type up something 🙂 Ă‚Â It’s easy enough to determine through the Excel commands that show up everywhere, but here is a version for Access.
What the code below does is grab your current margin settings, switch them to the settings you need for your form, print, and switch them back afterwards. Ă‚Â The four MsgBox lines are for debugging purposes, since I’ve seen a few different numbers for “points per inch” online. Ă‚Â The most likely numbers are 1440 or 72.
Finally, be sure to switch out DatabaseName.Form_FormNameForm with your Database Name and Form Name as appropriate.
Here is the VBA code:
'Record set margins. 'Access records margins in points. There are 1440 points in an inch. Dim intPointsPerInch intPointsPerInch = 1440 'Getting the original margins and storing them. Dim orgLeftMargin, orgRightMargin, orgTopMargin, orgBottomMargin orgLeftMargin = DatabaseName.Form_FormNameForm.Printer.LeftMargin orgRightMargin = DatabaseName.Form_FormNameForm.Printer.RightMargin orgTopMargin = DatabaseName.Form_FormNameForm.Printer.TopMargin orgBottomMargin = DatabaseName.Form_FormNameForm.Printer.BottomMargin 'These lines are for debuging purposes. 'They can be left commented out, or even deleted. 'If your margins are off, these will show you the original margins in points. 'MsgBox "Left: " & orgLeftMargin, vbOKOnly 'MsgBox "Right: " & orgRightMargin, vbOKOnly 'MsgBox "Top: " & orgTopMargin, vbOKOnly 'MsgBox "Bottom: " & orgBottomMargin, vbOKOnly 'Here the "1"s are inches for each margin. Replace as needed. With DatabaseName.Form_FormNameForm.Printer .LeftMargin = 1 * intPointsPerInch .RightMargin = 1 * intPointsPerInch .TopMargin = 1 * intPointsPerInch .BottomMargin = 1 * intPointsPerInch End With 'Print Commands. Change as needed for your database. DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70 DoCmd.PrintOut acSelection 'Changing the margins back. With DatabaseName.Form_FormNameForm.Printer .LeftMargin = orgLeftMargin .RightMargin = orgRightMargin .TopMargin = orgTopMargin .BottomMargin = orgBottomMargin End With
Hope you found this useful!