VBA Tipp: Seitenränder von Berichten ändern

Aus DBWiki
Wechseln zu: Navigation, Suche

Problem

Ich möchte die Seitenränder eines Berichtes per Code ändern.

Lösung

Das erreicht man mit folgendem Code:

Option Compare Database
Option Explicit
Type str_PRTMIP
    strGZF As String * 28
End Type
Type type_PRTMIP
    xLeftMargin As Long
    yTopMargin As Long
    xRightMargin As Long
    yBotMargin As Long
    fDataOnly As Long
    xWidth As Long
    yHeight As Long
    fDefaultSize As Long
    cxColumns As Long
    yColumnSpacing As Long
    xRowSpacing As Long
    rItemLayout As Long
    fFastPrint As Long
    fDatasheet As Long
End Type
 
 
Sub repRaender(strName As String, LRand, RRand, ORand, URand)
 
'Beispiel für den Aufruf:
'Call  repRaender("HauptBericht",20,10,15.01,15.93)
'Somit wird der Bericht "Hauptbericht" in der Entwurfsansicht
'geöffnet und dessen linker, rechter, oberer und unterer
'Rand in Millimetern eingestellt.
 
Dim PrtMipZeichenfolge As str_PRTMIP
Dim PM As type_PRTMIP
Dim rpt As Report
 
DoCmd.OpenReport strName, acDesign
Set rpt = Reports(strName)
 
PrtMipZeichenfolge.strGZF = rpt.PrtMip
LSet PM = PrtMipZeichenfolge
PM.xLeftMargin = LRand * 1440 / 25.4
PM.xRightMargin = RRand * 1440 / 25.4
PM.yTopMargin = ORand * 1440 / 25.4
PM.yBotMargin = URand * 1440 / 25.4
LSet PrtMipZeichenfolge = PM
rpt.PrtMip = PrtMipZeichenfolge.strGZF
 
DoCmd.Close acReport, strName, acSaveYes
 
End Sub