Access – Podešavanje margina u izveštajima iz VBA koda

Pored toga što margine u Access izveštajima (Reports) možete podesiti u vreme dizajniranja, margine se mogu podesiti i u vreme izvršavanja Access aplikacija, i to putem programskog VBA koda. Sve što je potrebno da biste ugradili ovu opciju unutar vaših Access projekata jeste da sledeći programski kod smestite (prekopirate) u opšti (General) programski modul i pozovete datu funkciju u istom momentu kada pozivate i metod DoCmd.OpenReport. Funkcija će raditi u Access-u od verzije 95 pa naviše. Čak i u Access-u 2002 (XP) možete programskim kodom pristupiti podešavanjima margina preko atributa PrtMip, pa je tako ovaj programski kod kompatibilan i sa ovom verzijom.

Type str_PRTMIP
RGB As String * 28
End Type

Type type_PRTMIP
“ Varijable definisane kao Long tip zbog konverzije
xLeftMargin As Long
yTopMargin As Long
xRightMargin As Long
yBottomMargin As Long
fDataOnly As Long
xItemSizeWidth As Long
yItemSizeHeight As Long
fDefaultSize As Long
xItemsAcross As Long
yColumnSpacing As Long
xRowSpacing As Long
rItemLayout As Long
rFastPrinting As Long
rDataSheetHeadings As Long
End Type
„————————Funkcija—————————–
Public Function SetReportMarginDefault(strReportName As String, left!, top!, right!, bottom!)
Dim PrtMipString As str_PRTMIP
Dim PM As type_PRTMIP
Dim objRpt As Report
Dim tempPrtMip As String

DoCmd.Echo False
DoCmd.OpenReport strReportName, acDesign
Reports(strReportName).Painting = False
Set objRpt = Reports(strReportName)

PrtMipString.RGB = objRpt.prtmip

LSet PM = PrtMipString
„Koristite 1440 za SAD (ince),a 567 za centimetre
PM.xLeftMargin = left * 1440
PM.yTopMargin = top * 1440
PM.xRightMargin = right * 1440
PM.yBottomMargin = bottom * 1440

LSet PrtMipString = PM

objRpt.prtmip = PrtMipString.RGB

“ Fokusiranje na report
DoCmd.SelectObject acReport, strReportName
„Snimanje izvestaja
DoCmd.DoMenuItem 7, acFile, 4, , acMenuVer70

CloseRpt:
DoCmd.Close acReport, strReportName
DoCmd.Echo True

End Function

Pratite Krstaricu na www.krstarica.com