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
 
Public Type str_PRTMIP
   strGZF         As String * 28
End Type
 
Public 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
 
 
Public 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