Access - Nombre de reporte al imprimir reporte a PDF

   
Vista:

Nombre de reporte al imprimir reporte a PDF

Publicado por Bely (2 intervenciones) el 21/02/2009 14:55:19
Hola a todos!

Espero puedan ayudarme, muchas gracias a todos desde ya !!!

Quiero imprimir estados de cuenta de clientes en forma masiva en un formato PDF, ya tengo un 90% avanzado pero me falta un "pequeño detalle": al convertir a pdf todos los estados de cuenta se imprimen con un mismo nombre, lo cual hace que los archivos se sobreescriban.

Por favor si saben qué debo agregar o lo que estos haciendo mal, hay algún parámetro que pongo mal en el OpenReport???

Lo que tengo es:

- Convertidor a PDF Adobe Acrobat 9, está configurado en las preferencias de usuario para guardar en una determinada ruta y que no use fuentes del sistema
- Un vista que jala datos de todos los EECC de los clientes
- Un reporte que mostrará el EECC (jala datos de la vista)
- Un formulario con el botón para imprimir en PDF

En el botón tengo el siguiente código:


Private Sub cmdImprimirPDF_Click()

Dim dbs As Database
Dim rst As Recordset
Dim strImpresoraActual, strSQL, strCuentaCliente, strReporte As String
Dim prtLoop As Printer
Dim X As Integer


'BUSCAR LA IMPRESORA QUE SE LLAME Adobe pdf
For Each prtLoop In Application.Printers
If Application.Printers.Item(X).DeviceName = "Adobe PDF" Then
Exit For
End If
X = X + 1
Next prtLoop

Set Application.Printer = Application.Printers(X)
Set prtDefault = Application.Printer

strImpresoraActual = Application.Printer.DeviceName

' CONEXIÓN A LA BASE DE DATOS Y ABRIR LA TABLA
strSQL = "SELECT DISTINCT CUENTA_CLIENTE FROM v_EstadoCuenta"

Set dbs = OpenDatabase("D:Generación de EECCEstado de cuenta.mdb")

Set rst = dbs.OpenRecordset(strSQL)

' SI NO HAY REGISTROS SALIR DEL PROGRAMA
If rst.RecordCount = 0 Then
rst.Close
Set rst = Nothing
Exit Sub
End If

rst.MoveLast
rst.MoveFirst

' BARRER CON TODOS LOS CLIENTES
While Not rst.EOF
strCuentaCliente = rst!CUENTA_CLIENTE

strReporte = "Reporte EECC"
DoCmd.OpenReport strReporte, acViewNormal, , "[CUENTA_CLIENTE] = '" & strCuentaCliente & "'"

rst.MoveNext
Wend

rst.Close
Set rst = Nothing

End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Nombre de reporte al imprimir reporte a PDF

Publicado por JUAN EMILIO AMOROS CANTO (218 intervenciones) el 22/02/2009 20:57:15
Hola Bely:

Una solución rápida es:

strReporte = "Reporte EECC" & Now()

De esta forma te recoge el "nombre": Reporte EECC, concatenado con el día,mes,año, hora,minutos y segundos en que lo realizas.

NUNCA te saldrá con otro nombre duplicado.

Otro sistema sería que, en una tabla aparte, tuvieras registros con 2 campos:

1 con "nombres" de ficheros a grabar (ficheros destino)
1 con un "número" que irías incrementando una vez leído el registro

de ahí sacarías el nombre-número que tampoco se repetiría.

Saludos

Juan Amorós
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Nombre de reporte al imprimir reporte a PDF

Publicado por Bely (2 intervenciones) el 24/02/2009 04:57:54
Gracias Juan, pero no funiona :(
Pasa que el strReporte = "Reporte EECC" es el nombre del informe que creé en access y al convertirlo a PDF el nombre del achivo "por default" es el nombre de la vista que hizo en el informe....

Al poner strReporte = "Reporte EECC" & now() aparece el mensaje del access diciendo que el nombre está mal escrito, y es verdad porque no tengo un informe llamado: Reporte EECC23/02/2009 10:56:40 p.m.

Qué otra solución puedo darle?

Muchas gracias

Saludos,
Bely
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar