** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - PDF Lebans los crea en blanco
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoPDF Lebans los crea en blanco

 Responder Responder
Autor
Mensaje
rokoko Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 16/Febrero/2008
Localización: Pamplona
Estado: Sin conexión
Puntos: 3071
Enlace directo a este mensaje Tema: PDF Lebans los crea en blanco
    Enviado: 21/Abril/2020 a las 20:16
Hola.
Llevo utilizando este sistema de crear PDFs unos años, una maravilla por cierto.
Pero en Access 2013 con window7 los informes me los PDF me salen blancos, sin informacion.
En access 2003 y windows7 lo hace correctamente. La base de datos es MDB.
Me suena que siempre trabajaba bien, pero igual estoy equivocado.

La cuestion es que en algunos equipos hay Access 2003 y en otros Access 2010, y me gustaria que siempre fuese en MDB, de hay el problema.

A ver si alguien puede averiguar por que ocurre, yo no encuentro info.
Podeis descargar la base de datos de Lebans aqui.

Saludos

Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: en línea
Puntos: 14428
Enlace directo a este mensaje Enviado: 21/Abril/2020 a las 22:13
A partir de una cierta versión de Access la rutina de Lebans casca (si no recuerdo mal es porque no puede obtener el archivo snapshot intermedio).

De todas formas en Access 2013 obtén directamente el archivo en PDF.

DoCmd.OutputTo acOutputReport, NombreReport, acFormatPDF, "C:\Temp\NombreArchivo.pdf"
Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 14926
Enlace directo a este mensaje Enviado: 21/Abril/2020 a las 23:15
Sin ánimo de ofender pero tener equipos con 2003, si se trata de una empresa, es para hacérselo mirar. Ya sabemos que el software no lo regalan pero hoy en día hay variedad de licencias de Office que se adaptan a cualquier economía. Voy a suponer que existen causas de fuerza mayor (no económicas) para mantener esas versiones.

La solución, si es que debe ser así, pasará por evaluar la versión de Office y lanzar la rutina de Lebans o la salida "nativa" según corresponda.

Utilizando Application.Version se obtiene el número de versión.
97: 8.0
2000: 9.0
2002: 10.0
2003: 11.0
2007: 12.0
2010: 14.0
2013: 15.0
2016: 16.0

Repito: sin ánimo de ofender.
Xavi, un minyó de Terrassa

Mi web
Arriba
rokoko Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 16/Febrero/2008
Localización: Pamplona
Estado: Sin conexión
Puntos: 3071
Enlace directo a este mensaje Enviado: 22/Abril/2020 a las 00:12
Lo se Mihura, en unos equipos hay 2003 y en otrro 2010...

Respecto a la Empresa, si es sorprendente, y es una muy grande y publica........Lo que pasa que access no una herramienta oficial por decirlo de alguna forma, pero los que trabajamos hay nos buscamos la vida para facilitarnos el trabajo.....

Estudio la forma de Xavi, pero creo que lo mas facil sera tener dos versiones de access funcionado, dependiendo del equipo.
Resueltas las dudas de por que no funciona, se puede cerrar

Muchas gracias
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 14926
Enlace directo a este mensaje Enviado: 22/Abril/2020 a las 00:39
Reabro el hilo para discrepar sobre el comentario "lo más fácil será tener dos versiones de access funcionando"

Rotundamente no. 

Si mantienes 2 versiones de la aplicación cada cambio deberá hacerse 2 veces. Si se utiliza una sola versión, solo se trata de implementar la comprobación de la versión para lanzar el PDF de una forma u otra.

Es más, hasta podrías pensar en utilizar constantes de compilador para evitar posibles problemas con el OutputTo. De hecho yo tendría una función "LanzaPDF" con los argumentos necesarios en cuanto a informe, nombre de fichero, etc y, dentro de ella, escogería que forma utilizo. Algo así:

#If VBA7 Then
  ' Versión 7 del editor de VBA: 2010 o superior
  'Código para lanzar el report por OutputTo
#Else
 ' Version anterior a 2010
  'Código para lanzar mediante Lebans
#End If

Un saludo

Xavi, un minyó de Terrassa

Mi web
Arriba
rokoko Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 16/Febrero/2008
Localización: Pamplona
Estado: Sin conexión
Puntos: 3071
Enlace directo a este mensaje Enviado: 22/Abril/2020 a las 08:05
Publicado originalmente por xavi xavi escribió:

Reabro el hilo para discrepar sobre el comentario "lo más fácil será tener dos versiones de access funcionando"

Rotundamente no. 

Si mantienes 2 versiones de la aplicación cada cambio deberá hacerse 2 veces. Si se utiliza una sola versión, solo se trata de implementar la comprobación de la versión para lanzar el PDF de una forma u otra.

Es más, hasta podrías pensar en utilizar constantes de compilador para evitar posibles problemas con el OutputTo. De hecho yo tendría una función "LanzaPDF" con los argumentos necesarios en cuanto a informe, nombre de fichero, etc y,


Lo voy a probar, la aplicacion esta terminada y de hacerse alguna modificación sera pequeña, pero si, es un rollo, trabajar con dos versiones......

Editado por rokoko - 22/Abril/2020 a las 08:05
Arriba
rokoko Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 16/Febrero/2008
Localización: Pamplona
Estado: Sin conexión
Puntos: 3071
Enlace directo a este mensaje Enviado: 22/Abril/2020 a las 11:00
Pues siguiendo los buenos consejos esto he probado y funciona tanto en W7 con access 2003 como con W7 y access 2013.
A no ser que me digais que no es correcto, se puede cerrar, muchas gracias.

Function PDFXX()

If Application.Version = "11.0" Then

MsgBox " V 11"
Dim blRet As Boolean
blRet = ConvertReportToPDF(Me.Name, vbNullString, "C:\Users\W7_Virtual\Desktop\Hola.pdf", True, False, 150, "", "", 0, 0, 0)

Else
MsgBox "V >11"

DoCmd.OutputTo acOutputReport, Me.Name, acFormatPDF, "C:\Users\Casa\Desktop\AAAAAAA.pdf", False

End If
End Function
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 14926
Enlace directo a este mensaje Enviado: 22/Abril/2020 a las 11:50
Para mi es correcto. Y funcionará siempre... que no tengas una máquina con Access anterior a 2003, dónde intentaria el envío OutputTo. 

Para evitarlo yo haría una pequeña modificación. 
Convertiría el Application.Version a número y utilizaría <= en lugar de = 

If Val(Application.Version)<= 11 Then ....

Un saludo
Xavi, un minyó de Terrassa

Mi web
Arriba
rokoko Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 16/Febrero/2008
Localización: Pamplona
Estado: Sin conexión
Puntos: 3071
Enlace directo a este mensaje Enviado: 22/Abril/2020 a las 14:54
Perfecto Xavi!!

Por mi se puede cerrar...

Saludos
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable