Exportar a Pdf o Word con NOmbre de Campo

Mi consulta tiene que ver, con que tengo una base de datos con varios registros, (más de 50) y van variando de acuerdo a requerimientos, el punto es que cada informe tiene que tomar un nombre distinto y es un informe por cada registro, por ende se tienen que generar 50 Informes o 50 Documentos exportados.
Al realizarlo con una macro simple de las que trae el Access, me genera los 50 informes en un documento (Word o PDF) con 50 hojas, cuando lo que requiero es Un documento por registro.
Lo estoy logrando realizar pero me toma mucho tiempo estar seleccionado registro por registro y exportarlo de forma Manual para poderle dar el nombre que quiero.
Lo que requiero es que se genere una macro o código (y es acá donde necesito la ayuda) que me genere un informe con el nombre de uno de los campos que estoy exportando, ya sea el Identificador u otro, y al mismo tiempo me los genere todos, estuve probando con el cmdInputBox() pero no se usarlo bien o no se como generar el usar ese comando. ¿Alguien qué me pueda ayudar?
Si es necesaria más información solo pregúntenme.
Sistema Operativo: Windows 7
Office : 2007

1 Respuesta

Respuesta
1
Creo que lo primero que tienes que hacer es lograr crear un informe para un solo valor de ese campo (nombre), aunque tengas 50 registros. Eso lo puedes hacer utilizando los filtros.
Ejemplo: Tabla con Nombre, Salario y FechaDeContratacion (con 50 personas). Si haces un informe sobre esa tabla que se llame Reporte, al abrirlo salen los 50 nombres.
Si utilizas esta forma de abrirlo:
DoCmd.OpenReport "Informe1", acViewPreview, , "[Nombre]='Alfredo'", acWindowNormal
Te abrirá solo el informe para el nombre ALFREDO.
Por ejemplo, en un formulario con un botón, le he puesto el siguiente código (previamente he establecido mi impresora PDFCreator como predeterminada):
 DoCmd.OpenReport "Informe1", acViewPreview, , "Nombre='Alfredo'", acWindowNormal
 Reports!Informe1.Caption = "Informe de Alfredo"
DoCmd. PrintOut acPrintAll,,, acHigh, 1
DoCmd. Close acReport, "Informe1", acSaveYes
Es decir:
a) Abre el informe, filtrándolo solo por el campo Nombre = Alfredo
b) Pone el titulo del formulario el valor "Informe de Alfredo". Este es el valor que por defecto escogerá el PDF creator como nombre del archivo.
c) Imprimo en la impresora por defecto.
d) Cierro el reporte.
Para hacer lo que tu quieres, debes repetir esto por cada valor del campo que a ti te interese. Abres el recordset de valores y para cada uno de ellos ejecutas lo anterior, sustituyendo el dato fijo que yo he puesto (Alfredo) por el valor que vaya tomando cada registro. Así conseguirás que te vaya imprimiendo un informe, de un solo valor, en un solo fichero.
Perfechto, ya me has dado la idea de como realizarlo y el comando.. Pero una aclaración por favor y en el caso que sepas me digas como.
Como bien dices en la tabla tengo varios Nombes (para seguir con tu ejemplo) Pero si quiero que el nombre del archivo que se genera sea EL MISMO NOMBRE DEL REGISTRO, es decir que en vez de que se llame INFORME DE ALFREDO y sea especcificado por mi que sea por ejemplo INOFORME DE [CAMPO_NOMBRE].PDF ¿Se puede realizar? Esto para no tener que esta generando un código distinto para cada informe.
De antemano gracias..
Sí. Substituye la expresión por:
Reports!Informe1.Caption = "Informe de " & NombreDeTuRecordset.Nombre
Así, te irá cambiando el titulo del informe para cada nombre y este es el valor que el PDF Creator escoge por defecto para darle nombre al fichero. Así te bastara con dar a aceptar.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas