VBA: Indstil paper size på rapporter uden at åbne dem
Hej.Jeg har problemer med at fastholde paper size på mine rapporter i Access97. Hvis jeg indstiller dem til f.eks. A3 formatet, og så prøver at afvikle applikationen på en anden PC, så bliver formatet automatisk ændret til at være i A4 hvis brugeren har en anden standard printer installeret end den jeg har. Dette sker vel at mærke også selvom den andens standard printer også kan printe i A3!
Jeg har så fundet frem til nedenstående modul som kan sætte formatet på en rapport.
<---Modul start--->
Type str_DEVMODE
RGB As String * 94
End Type
Type type_DEVMODE
strDeviceName As String * 16
intSpecVersion As Integer
intDriverVersion As Integer
intSize As Integer
intDriverExtra As Integer
lngFields As Long
intOrientation As Integer
intPaperSize As Integer
intPaperLength As Integer
intPaperWidth As Integer
intScale As Integer
intCopies As Integer
intDefaultSource As Integer
intPrintQuality As Integer
intColor As Integer
intDuplex As Integer
intResolution As Integer
intTTOption As Integer
intCollate As Integer
strFormName As String * 16
lngPad As Long
lngBits As Long
lngPW As Long
lngPH As Long
lngDFI As Long
lngDFr As Long
End Type
Public Function SetPaperSize(strName As String)
Dim rpt As Report
Dim strDevModeExtra As String
Dim DevString As str_DEVMODE
Dim DM As type_DEVMODE
DoCmd.Echo False
DoCmd.OpenReport strName, acDesign 'Opens report in Design view.
Set rpt = Reports(strName)
If Not IsNull(rpt.PrtDevMode) Then
strDevModeExtra = rpt.PrtDevMode
DevString.RGB = strDevModeExtra
LSet DM = DevString
DM.lngFields = DM.lngFields Or DM.intOrientation 'Initialize fields.
DM.intPaperSize = 8 'A3 (297 x 420 mm)
LSet DevString = DM 'Update property.
Mid(strDevModeExtra, 1, 94) = DevString.RGB
rpt.PrtDevMode = strDevModeExtra
DoCmd.Save acReport, strName
DoCmd.Close acReport, strName
End If
DoCmd.Echo True
End Function
<---Modul slut--->
Det virker som sådan også meget godt, men problemet er at min applikation skal køre som en MDE fil, og så går det jo galt når den prøver på at åbne rapport i design view eftersom alle design muligheder er fjernet i en MDE fil.
Så derfor: Kan man gøre noget lignende ovenstående, men blot uden at åbne rapporten i design view? Eller findes den en løsning på problemet med at formatet automatisk ændrer sig når man skifter printer?
På forhånd tak.
