Guardar un PDF en un directorio predeterminado

Os agradeceria muchisimo si pudieses darme indicaciones de como realizar todo este proceso.

A traves de un Informe creo un PDF que he de guardar en un directorio que se crea de forma automatica en la creacion del documento.

El directorio y la carpeta ha de estar formado a traves de una composIcion de caracteres:

Ruta =  "C: \Users \Hermes\ Desktop\ GESTION\ DOCUMENTOS\" & IdCliente & " " & [NombreFiscal]

Cada documento es creado en una carpeta diferente que corresponde al Archivo del Cliente

He de controlar si ya existe esta Carpeta creada con anterioridad y sacar un TexBox para indicar al Operador si ha de sobreescribirse o añadirse añadiendolo algun caracter o texto que lo distinga del anterior documento creado con anterioridad.

1 Respuesta

Respuesta
1

Con la función Dir() puedes comprobar si existe un archivo o carpeta. Sabiendo si existe o no, con un simple If actúas en consecuencia.

A ver si te sale.

Un saludo


Lo que necesitaría es conocer la rutina para crear el directorio y la carpeta para después guardar el PDF

El controlar si existe lo haré conforme me has comentado, pero necesito conocer la forma de crear esa carpeta y después crear el PDF a través de

DoCmd.OutputTo acOutputReport, Ruta & IdCliente, acFormatPDF

Un saludo

Si la carpeta no existe, puedes crearla con MkDir ruta.

Ten en cuenta que si el archivo lo quieres en la carpeta: "C: \Users \Hermes\ Desktop\ GESTION\ DOCUMENTOS\", pero no existe la carpeta GESTION, no puedes hacer:

MkDir "C: \Users\Hermes\Desktop\GESTION\DOCUMENTOS\"

sino que has de hacer:

MkDir "C: \Users\Hermes\Desktop\GESTION\"

MkDir "C: \Users\Hermes\Desktop\GESTION\DOCUMENTOS\"

Es decir, has de ir creando carpeta a carpeta.

Y después para colocar el PDF en la Carpeta Correspondiente que esta en el campo RUTA es correcta esta instrucción:

campo Ruta: Ruta =  "C: \Users \Hermes\ Desktop\ GESTION\ DOCUMENTOS\" & IdCliente & " " & [NombreFiscal]

Inserción en la Carpeta del Cliente:

DoCmd.OutputTo acOutputReport, Ruta & IdCliente, acFormatPDF

Un saludo

Ese outputto no te va a funcionar porque le estás indicando mal los parámetros: https://msdn.microsoft.com/es-es/library/office/ff192065.aspx 

Tendría que ser algo así:

DoCmd. OutputTo acOutputReport, "NombreInforme", acFormatPDF, Ruta

Además, tienes que darle nombre y extensión al archivo, por ejemplo:

DoCmd.OutputTo acOutputReport, "NombreInforme",acFormatPDF, Ruta & "\InformeCliente" & IdCliente & ".pdf"

Esta es la rutina que estoy empleando sin controlar aun el que exista el directorio con anterioridad.

Private Sub Comando145_Click()
Dim Numero As String
Dim Ruta As String
Ruta = "C:\Users\Hermes\Desktop\GESTION\DOCUMENTOS\" & IdCliente & " " & [Nombre Fiscal]
MkDir "C:\Users\Hermes\Desktop\GESTION\DOCUMENTOS\" & IdCliente & " " & [Nombre Fiscal]
Numero = Me.IdCliente
DoCmd.OutputTo acOutputReport, "PEDIDO EMPRESA", acFormatPDF, Ruta & "\InformePedido" & IdCliente & ".pdf"
End Sub

Y me da el siguiente error:

Se ha producido el error: 2059 en tiempo de Ejecución

Gestión Comercial no encuentra el objeto '[1'

¿Dónde te da el error? De sintaxis no veo nada raro

El concepto &"\InformePedido" a que corresponde?

Igual es lo que esta dando el error he dado un nombre cualquiera para nombrar el archivo es así o corresponde algún nombre de algún documento.

¿A qué corresponde "\InformePedido" a que hace referencia?, igual es ahí donde no encuentra el archivo

InformePedido no sé a que hace referencia, tu lo has puesto, por algo será...

¿Leíste el enlace de la ayuda de Outputto que te puse? Porque ahí te viene explicado qué hace cada parámetro y muy claro...

Con la linea que tienes del docmd. Outputto, y suponiendo que el valor de IdCliente sea 1 y el nombre fiscal "Empresa Familiar SA", estás diciendo:

Exporta el informe llamado "PEDIDO EMPRESA", en formato pdf, a la carpeta "C:\Users\Hermes\Desktop\GESTION\DOCUMENTOS\1 Empresa Familiar SA" y con el nombre "InformePedido1.pdf" 

Yo he probado replicando lo que tienes y el código funciona

Me estaba equivocando con el nombre del Informe y era la causa del error.

Lo que me ocurre es que me lee todas las líneas de la Tabla y no selecciona las del Cliente, y al final de toda la lectura, no me inserta el PDF.

En pantalla mientras esta revisando todas la líneas leo perfectamente la dirección del emplazamientos del informe y el numero y nombre del Cliente que esta tratando:

C:\Users\Hermes\Desktop\GESTION\DOCUMENTOS\25 DUARTE, S.L.\Pedido_Empresa.pdf

No se donde decirle que extraiga solo las del Cliente y guarde el PDF.

El informe a que hace referencia PEDIDO EMPRESA A4 funciona perfectamente en la impresión.

Me funciona ya perfectamente el problema que había es que hay que abrir previamente el informe.

Muchas gracias por tu gran ayuda,

Me alegra saber que lo has solucionado.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas