Hay alguna forma de configurar(izq,der,sup,inf) el informe
desde codigo, antes de abrirlo??
SAludos y gracias..
EDUARDO OLAZ
============
Hay que utilizar la propiedad PrtMIP del informe.
Esta propiedad es una cadena de 28 bytes en la que se almacena la
configuración de la página:
Márgenes, Columnas, Tamaño, etc... Léete la ayuda.
En tiempo de ejecución, por ejemplo en los eventos Al imprimir, etc... es de
sólo lectura.
En tiempo de diseño es de lectura y escritura.
Los pasos que hay que seguir son:
Mediante código, abrir el informe en modo diseño
Establecer la propiedad PrtMIP del informe
Abrir el informe en modo Normal (Se imprimirá)
Cerrar el informe sin grabarlo
La instrucción:
ImprimirAjustandoMargenes "rptVentas", 3, 2, 1.5, 2
Imprimirá el informe rptVentas con un margen izquierdo de 3 cms, un margen
derecho de 2 cms, un margen superior de 1,5 cms y un margen inferior de 2
cms.
Créate un módulo con este código:
________________________________
Option Explicit
Type CadenaPrtMip
strConfiguracion As String * 28
End Type
' la estructura TipoPrtMIP se pasa a la cadena
' strConfiguracion, y ésta a la propiedad PrtMIP
' de un informe para configurar sus propiedades
' mediante VBA en modo diseño.
' PrtMIP es de sólo lectura en tiempo de ejecución
Type TipoPrtMIP
MargenIzquierdo As Long
MargenSuperior As Long
MargenDerecho As Long
MargenInferior As Long
SoloDatos As Long
Ancho As Long
Alto As Long
TamañoPredeterminado As Long
Columnas As Long
EspacioColumna As Long
EspacioFila As Long
DiseñoElemento As Long
FastPrinting As Long
Datasheet As Long
End Type
Public Sub ImprimirAjustandoMargenes( _
ByVal Informe As String, _
Optional ByVal MargenIzq As Single = 2.54, _
Optional ByVal MargenDch As Single = 2.54, _
Optional ByVal MargenSup As Single = 2.54, _
Optional ByVal MargenInf As Single = 2.54)
' Este procedimiento abre un informe
' le aplica los márgenes, lo imprime y lo cierra
' para aplicarle los márgenes usa la propiedad
' (de sólo lectura en ejecución) prtMip del informe
' Primera versión 19/10/2002
' Eduardo Olaz eduardo@olaz.net
' Los márgenes están en centímetros
' strConfiguracion será la cadena de 28 byts que
' pasaremos a la propiedad PrtMip del informe
' conTwipsCentimetro Coeficiente de conversión
' de Centímetros a Twips
' Aquí deberías poner una rutina de errores
On Error GoTo HayError
Const conTwipsCentimetro As Long = 567
' Los márgenes se pasan en Twips
Dim PrtMipString As CadenaPrtMip
Dim TPrtMip As TipoPrtMIP
Dim rpt As Report
DoCmd.OpenReport Informe, acDesign
Set rpt = Reports(Informe)
' Ya que tenemos una cadena en el PrtMip
' del informe gravado la usamos como base
PrtMipString.strConfiguracion = rpt.PrtMip
LSet TPrtMip = PrtMipString
With TPrtMip
.MargenIzquierdo = MargenIzq * conTwipsCentimetro
.MargenSuperior = MargenSup * conTwipsCentimetro
.MargenDerecho = MargenDch * conTwipsCentimetro
.MargenInferior = MargenInf * conTwipsCentimetro
End With
LSet PrtMipString = TPrtMip ' Actualiza la propiedad.
rpt.PrtMip = PrtMipString.strConfiguracion
' Abrimos el informe para imprimirlo
DoCmd.OpenReport Informe, acViewNormal
' Cerramos el informe sin grabarlo
DoCmd.Close acReport, Informe, acSaveNo
Set rpt = Nothing
Salir:
Exit Sub
HayError:
MsgBox "Se ha producido el Error Nº " & Err.Number _
& vbCrLf _
& Err.Description _
& vbCrLf _
& "Al tratar de imprimir el informe: " _
& Informe, _
vbCritical + vbOKOnly, _
"Procedimiento ImprimirAjustandoMargenes"
Set rpt = Nothing
Resume Salir
End Sub
________________________________
               (
geocities.com/es/ensolva/Descargas)                   (
geocities.com/es/ensolva)                   (
geocities.com/es)