¿Si cambio los márgenes de una página en Microsoft Access afectarán a todo el informe completo?

Hola
Puedes darme una explicación para resolverme estas dudas:
¿Cuándo cambio los margenes de la página, solo afectan al informe en concreto o a todos? ¿Se queda siempre guardado? Si exporto el informe a otro ordenador, ¿por qué no mantiene los margenes?
Creo que la mejor solución seria definir los margenes de la página por código, dentro del mismo formulario, ¿no?
Entonces, ¿cómo puedo definir por código los margenes la página de un informe?
Muchas gracias por tu tiempo y dedicación.
Ramon

1 Respuesta

Respuesta
1
Cada informe guarda los datos
De impresión (margenes y así)
En una propiedad llamada prtmip. Es por tanto una propiedad de cada Informe.
Esta propiedad queda vinculada a las impresoras definidas en Windows. Así que si cambias de ordenador (que tiene otras impresoras) los margenes a veces no se guardan.. la verdad es que no tengo claro cuando se guardan y cuando no. Supongo al cambiar de impresora se cogen los margenes mínimos de esta impresora..
En cuanto a cambiar los margenes por código la cosa se complica un poquito.
Si quieres enterarte de que va consulta este enlace:
http://www.microsoft.com/AccessDev/Articles/GetzCh10.HTM
El codigo de ejemplo lo puedes encontrar en:
http://www.mcwtech.com/downloads.htm.
En la parte que pone "Download a replacement for Ch10.MDB"
Si tienes mucha prisa te adjunto un código bastante chapucilla pero que puede funcionar. Pégalo en un modulo nuevo. Para cambiar el margen izquierdo y derecho llama a la función
SetsMarginsTo "nombreReport", nMargen_izquierdo, nMargen_derecho
- Los margenes en centímetros
- El report tiene que estar cerrado.
---- Código ----
Type cad_PRTMIP
cadRGB As String * 28
End Type
Type type_PRTMIP
EntMargenIzquierdo As Integer
EntMargenSuperior As Integer
EntMargenDerecho As Integer
EntMargenInferior As Integer
EntSóloDatos As Integer
EntAncho As Integer
EntAlto As Integer
EntTamañoPredeterminado As Integer
EntColumnas As Integer
EntEspacioColumna As Integer
EntEspacioFila As Integer
EntDiseñoElemento As Integer
EntFastPrinting As Integer
EntDatasheet As Integer
End Type
Sub SetsMarginsTo(cadNombre As String, nMargenIzquierdo As Integer, nMargenDerecho As Integer)
'nMargenIzquierdo y nMargenDerecho en centimetros
Dim PrtMipString As cad_PRTMIP
Dim PM As type_PRTMIP
Dim rpt As Report
DoCmd.OpenReport cadNombre, acDesign
Set rpt = Reports(cadNombre)
PrtMipString.cadRGB = rpt.PrtMip
LSet PM = PrtMipString
PM.entMargenIzquierdo = (nMargenIzquierdo / 2.54) * 1440 ' Establece los márgenes.
PM.entMargenDerecho = (nMargenDerecho / 2.54) * 1440
LSet PrtMipString = PM ' Actualiza la propiedad.
rpt.PrtMip = PrtMipString.cadRGB
DoCmd. Save
DoCmd. Close
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas