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 ________________________________