Problemas con informes

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.

1 respuesta

Respuesta
1
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.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas