He diseñado varios informes en una base de datos donde la página esta en forma horizontal pero después de ejecutarlo varias veces me cambia la orientación de la página a vertical. Cual puede ser el problema.
Me parece que se trata de un bug de alguna versión del access. O que guarde la configuración del último creado. En la knowledge base de microsoft encontrarás más información y si quieres solucionarlo por completo te paso un código que lo pones en un módulo y ya no te fallarán más. O quizás deshabilitando la opción de autocorrección de nombres te ayude a solventarlo, de todas formas te paso ejemplos de código por si quieres probarlo. Option Compare Database Option Explicit 'Ejemplo de la propiedad ModoDispImp (PrtDevMode) 'En el ejemplo siguiente se utiliza la propiedad ModoDispImp (PrtDevMode) para comprobar el tamaño de página definido por el usuario para un informe: Type cad_DEVMODE RGB As String * 94 End Type Type type_DEVMODE cadNombreDispositivo As String * 16 EntVersiónEspec As Integer EntVersiónControlador As Integer EntTamaño As Integer EntControladorExtra As Integer lngCampos As Long EntOrientación As Integer EntTamañoPapel As Integer EntLongitudPapel As Integer EntAnchoPapel As Integer EntEscala As Integer EntCopias As Integer EntOrigenPredeterminado As Integer EntCalidadDeImpresión As Integer EntColor As Integer EntDúplex As Integer EntResolución As Integer EntOpciónTT As Integer EntIntercalar As Integer cadNombreFormulario As String * 16 lngRelleno As Long lngBits As Long lngPW As Long lngPH As Long lngDFI As Long lngDFr As Long End Type 'El siguiente ejemplo muestra cómo cambiar la orientación del informe. Este ejemplo cambiará 'la orientación de vertical a horizontal o viceversa, dependiendo de la orientación actual del informe. Sub SwitchOrient(cadNombre As String) Const DM_PORTRAIT = 1 Const DM_LANDSCAPE = 2 Dim DevString As cad_DEVMODE Dim DM As type_DEVMODE Dim cadModoDispositivoExterno As String Dim rpt As Report 'Abre el informe en la vista Diseño. 'Dim cadNombre As String DoCmd.OpenReport cadNombre, acDesign Set rpt = Reports(cadNombre) If Not IsNull(rpt.PrtDevMode) Then cadModoDispositivoExterno = rpt.PrtDevMode DevString.RGB = cadModoDispositivoExterno LSet DM = DevString DM.lngCampos = DM.lngCampos Or _ DM.entOrientación ' Inicializa los campos. Pregunta la orientacion y la cambia a la LANDSCAPE ' Aqui es donde se puede configurar para portrait y landscape If DM.entOrientación = DM_PORTRAIT Then DM.entOrientación = DM_LANDSCAPE Else DM.entOrientación = DM_PORTRAIT End If DM.entOrientación = DM_LANDSCAPE LSet DevString = DM ' Actualiza la propiedad. Mid(cadModoDispositivoExterno, 1, 94) = DevString.RGB rpt.PrtDevMode = cadModoDispositivoExterno End If End Sub 'Termina aqui Luego para abrir el informe lo haces en la forma siguiente: Dim cadNombre As String cadNombre = "aquí_ponemos_el_nombre_del_informe" PrtMipCols (cadNombre) Un saludo y perdona por tardar tanto en responder.