Avatar billede mundt Nybegynder
20. februar 2003 - 12:11 Der er 4 kommentarer og
1 løsning

Ændre pagesetup

Jeg har brug for, via VBA, at ændre mine print marginer i en accessdatabase. Det er ikke nok at gå ind instillinger at sætte marginerne manuelt. Min database har kun en menu tilgængelig for brugerne som jeg selv har lavet. DVS. de har ikke mulighed for at gå ind og tilpasse marginerne efter deres ønske. Endvidere er databasen plaseret på en CITRIX-server hvor også andre accessdatabaser bliver brugt. Derfor kan jeg kun leve med en løsning hvor marginerne bliver sat 'on the fly'.
Er der nogen som har en kodestump der gør arbejdet?
Avatar billede hugopedersen Nybegynder
20. februar 2003 - 14:16 #1
Ja det har jeg - MEN du kan kun gøre det ved at åbne rapporten i designvisning, ændre det og så gemme rapporten. Der efter kan du udskrive/vise rapporten.  Altså er en .mde fil udelukket.

Hvorfor skal du kunne gøre dette ?
Avatar billede hugopedersen Nybegynder
20. februar 2003 - 14:23 #2
Type str_PRTMIP
    strRGB 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


Function fhpSetMargins(strReport As String) As Integer
' -----------------------------------------------------------------------------------
' Purpose      : Sets the margin of a report
' Called from  :
' Returns      :
' Remarks      : 1440 twips = 1 inch  567 twips = 1 cm
' -----------------------------------------------------------------------------------
  Dim PrtMipString As str_PRTMIP
  Dim PM As type_PRTMIP
  Dim rpt As Report
   
  DoCmd.OpenReport strReport, acDesign                      'Open report in design view
 
  Set rpt = Reports(strReport)
  PrtMipString.strRGB = rpt.PrtMip
  LSet PM = PrtMipString
  PM.xLeftMargin = 1 * 567                                  'Set left margin
  PM.yTopMargin = 1 * 567
  PM.xRightMargin = 1 * 567
  PM.yBotMargin = 1 * 567
  LSet PrtMipString = PM                                    'Update property.
  rpt.PrtMip = PrtMipString.strRGB
 
  DoCmd.Close acReport, strReport, acSaveYes                'Close report

End Function


Denne funktion sætter alle marginer til 1 cm !  Det kan du så 'bare' rette til det du har brug for eller udbygge funktionen til at tage flere parametre.
Avatar billede mundt Nybegynder
20. februar 2003 - 14:25 #3
Vil det sige at det godt kan lade sig gøre alligevel?
Avatar billede hugopedersen Nybegynder
20. februar 2003 - 14:27 #4
Så længe det er en .mdb ( eller .adp ) fil, så kan man godt ja.
Hvis du bruger en .mde fil er rapporternes designvisning låst og funktionen virker ikke.
Avatar billede mundt Nybegynder
30. juni 2003 - 10:13 #5
Det var ærgerligt - tak for hjælpen alligevel!

mvh mundt
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester