Per modificare i margini di un report in A97, faccio in questo modo
Type str_DEVMODE
RGB As String * 94
End Type
Type type_DEVMODE
strNomeDispositivo As String * 16
intVersioneSpec As Integer
intVersioneDriver As Integer
intDimensione As Integer
intDriverExtra As Integer
lngCampi As Long
intOrientamento As Integer
intDimensFoglio As Integer
intLunghezzaFoglio As Integer
intLarghezzaFoglio As Integer
intScala As Integer
intCopie As Integer
intOriginePredef As Integer
intQualitàStampa As Integer
intColore As Integer
intDuplex As Integer
intRisoluzione As Integer
intOpzioneTT As Integer
intFascicola As Integer
strNomeMaschera As String * 16
lngTitolo As Long
lngBit As Long
lngPW As Long
lngPH As Long
lngDFI As Long
lngDFr As Long
End Type
Sub ModificaOrient(strNome As String)
Const DM_PORTRAIT = 1
Const DM_LANDSCAPE = 2
Dim StringaPer As str_DEVMODE
Dim DM As type_DEVMODE
Dim strModalitàExtraPer As String
Dim rpt As Report
DoCmd.OpenReport strNome, acDesign ' Apre il report in
visualizzazione Struttura.
Set rpt = Reports(strNome)
strModalitàExtraPer = rpt.PrtDevMode
StringaPer.RGB = strModalitàExtraPer
LSet DM = StringaPer
DM.lngCampi = DM.lngCampi Or DM.intOrientamento ' Inizializza campi.
If strNome = "Esami" Then
DM.intOrientamento = DM_LANDSCAPE
Else
DM.intOrientamento = DM_PORTRAIT
End If
LSet StringaPer = DM ' Aggiorna la proprietà.
Mid(strModalitàExtraPer, 1, 94) = StringaPer.RGB
rpt.PrtDevMode = strModalitàExtraPer
DoCmd.Close acReport, strNome, acSaveYes
End Sub
Se nell'argomento della sub aggiungo per esempio una stringa che poi mi
indica che orientamento applicare al report già passato, quando chiamo la
sub da una qualsiasi altra parte mi da errore, anzi non me lo fa neanche
scrivere, lo evidenzia subito di rosso. Perchè?Dove sbaglio?
Grazie