Como exportar a pdf un informe y que cree una carpeta con el nombre del cliente activo en formulario

Tengo un formulario "Presupuestos" por el que navego por las cotizaciones hechas a diferentes clientes.

Existe la posibilidad de crear un botón que al darle click me exporte un informe en pdf del registro actual creando una carpeta (si es que no existe) con el nombre del cliente que tengo en el cuadro de texto, por ejemplo C:\Clientes\Nombre Cliente\Presupuesto.pdf? 

Respuesta
2

Yo te pongo el código con mis nombres y tu le pones los tuyos.

Supongamos que el control de formulario se llama NombreCliente y que el informe se llama Clientes. En el botón, en sus propiedades-eventos-al hacer clic crea un procedimiento de evento y escribe

DoCmd.OpenReport "Clientes", acViewPreview, "", "nombrecliente='" & Me.NombreCliente & "'"
DoCmd.OutputTo acOutputReport, "Clientes", "PDFFormat(*.pdf)", "C:\users\documents\borrar\" & Me.[NombreCliente] & ".pdf", False, "", , acExportQualityPrint

Aunque lo veas así son dos líneas

Hola Icue!

Me abre el informe perfectamente pero me da un mje de error. El tipico depurar.

Algo no has puesto bien. Si tengo un formulario, da igual que sea único o continuo, ya que el registro activo sería el mismo, por eso aprovecho este que tengo

Observa que el registro activo es el de mi querido desconocido Alfreds. Si pulso el botón Comando25, primero me abre el informe en ese registro

Luego me lo pasa a pdf con el nombre de Alfreds

Y como puedes ver "contiene" lo mismo

DoCmd.OpenReport "Clientes", acViewPreview, "", "nombrecliente='" & Me.NombreCliente & "'"
DoCmd.OutputTo acOutputReport, "Clientes", "PDFFormat(*.pdf)", "C:\users\cabarcos\documents\borrar\" & Me.[NombreCliente] & ".pdf", False, "", , acExportQualityPrint

Hola Icue! Ante nada, gracias por tus rápidas respuestas como siempre.

El código funciona perfectamente, tenía una comilla mal puesta.

El problema es que me lo guarda en la dirección fija que le doy con el código, lo cual me guarda todos los presupuestos en una misma carpeta, yo quería saber si al exportar se podía crear la carpeta con el nombre del cliente (C:\Clientes\Carlos\ y dentro de esta, el Presupuesto.pdf.

Tienes que usar el comando MKDir(antiguo DOS)

MkDir "C:\users\cabarcos\documents\" & Me.NombreCliente & ""
DoCmd.OpenReport "Clientes", acViewPreview, "", "nombrecliente='" & Me.NombreCliente & "'"
DoCmd.OutputTo acOutputReport, "Clientes", "PDFFormat(*.pdf)", "C:\users\cabarcos\documents\" & Me.NombreCliente & "\Clientes.pdf", False, "", , acExportQualityPrint

Con lo que te crea la carpeta del amigo Alfred

Y si la abro

Veo que te funciona perfecto y es lo que necesito, pero me da error, y se que algo estoy haciendo mal. No se si me falta colocar algo en el código o que!

En la imagen que cuelgas te falta una M

Mkdir

En el antiguo D.O.S. ó Display Operative System, que es como se programaba antes de que el gili de Bill Gates sacara el Windows

Lo que le estabas diciendo era

MaKeDirectory

En realidad lo corte mal cuando lo pegué. Pero me da el mismo error.

Lo único que puedo hacer es mandarte un ejemplo. Si quieres, repito, si quieres, mándame un mensaje(sólo el mensaje) a [email protected] y te mando el ejemplo. Si lo haces, en el asunto del mensaje pon tu alias Juan Martin, ya que si no sé quien me escribe ni los abro.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas