Access - Impresión de informes

 
Vista:

Impresión de informes

Publicado por Paco (38 intervenciones) el 19/03/2009 19:19:00
Hola de nuevo a todos,

Cómo puedo imprimir en un informe un único registro, ya sé que funciona con consultas, es decir, hago la consulta y luego creo un informe con el asistente eligiendo esa consulta pero no es eso exáctamente lo que quiero, es decir, quiero crear un informe tipo carta y utilizarlo para imprimir los datos del registro que tengo activo en ese momento en el formulario, que no siempre va a ser el mismo, cómo puedo hacerlo.

Aprovecho también para dar las gracias a todos los que me estais ayudando con vuestras respuestas ya que gracias a ellas voy aprendiendo cómo funciona este entorno.

Gracias.
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:Impresión de informes

Publicado por Marcos  (236 intervenciones) el 19/03/2009 21:39:14
Paco.
Puedes hacer lo sgte.:
1.- En la consulta que se basa tu informe debe existir el campo por el cual vas a discriminar el registro activo. En los criterios de ese campo (en la consulta) pones lo sgte.:
Formularios]![Nombredelformulario]![Nombredelcampo]
Ojo: Nombredelcampo es el nombre del campo en tu formulario por el cual discriminarás tu selección.
2.- Luego, en el formulario en donde está el registro activo, crea un boton y en el evento al hacer click de ese boton pones lo sgte.:
On Error GoTo Err_Nombreboton_Click
Dim stDocName As String
stDocName = "Nombredelinforme"
DoCmd.OpenReport stDocName, acNormal
End sub

Con esto, al hacer click sobre el botón, te imprimirá el registro activo en tu formulario.

Saludos
Marcos
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:Impresión de informes

Publicado por Paco (38 intervenciones) el 19/03/2009 23:08:33
Marcos, algo debo de hacer mal pues no consigo que imprima el informe con los datos del registro, el informe me aparece vacio,

El formulario se llama: FILTRADOR3
El Informe se llama: INF_PRUEBA
la consulta se llama: GESTION CONSULTA

En la consulta tengo puesto:
[Formularios]![FILTRADOR3]![EXPEDIENTE]

y en el evento -clicl- del botón del formulario:
Private Sub Comando193_Click()
Dim stDocName As String
stDocName = "INF_PRUEBA"
DoCmd.OpenReport stDocName, acNormal
End Sub

Además la impresión sale directa, me gustaria que me ofreciera las impresoras posibles para la impresión antes de imprimir.

No se si este código funciona esté el registro activo que esté de la forma que sea, ya que en mi base tengo muchos registros, puede que haya hecho una búsqueda en la que coincidan 4 registros a los cuales quiera poder enviar esa misma carta o puede que sólo sea un registro, no sé si esto dificulta la tarea y si el código en ese caso cambia.

Muchas gracias.
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:Impresión de informes

Publicado por Enrique (1299 intervenciones) el 20/03/2009 12:09:18
Paco, para poder elejir impresora tienes que insertar en el formulario un Control ActiveX "Microsoft Common Control, version 6.0", entrar en sus propiedades y cambiale el nombre que Access le pone por defecto por: Dialogo. Luego para poder restringir la impresión al registro que tengas activo en el formulario, hay que tomar un campo que sea único (que no se repita en otros registros), como por ejemplo: Codigo, NroFicha, DNI, etc. Parece ser que en tu caso es EXPEDIENTE y no creo que tengan mas de 1 registro con el mismo Expediente.

Private Sub Comando193_Click()
Dialogo.CancelError = True
On Error GoTo CancelarImpresion
Dialogo.ShowPrinter
DoCmd.OpenReport "INF_PRUEBA", acNormal, "", "[GESTION CONSULTA]![EXPEDIENTE]='" & [EXPEDIENTE] & "'"
MsgBox "El Informe ha sido enviada a la impresora.!", vbInformation, "Impresión"
CancelarImpresion:
If Err = cdlCancel Then
MsgBox "Impresión cancelada.!", vbInformation, "Impresión"
End If
End Sub

Si el campo EXPEDIENTE fuera Numérico, cambia la linea del DoCmd por esta:
DoCmd.OpenReport "INF_PRUEBA", acNormal, "", "[GESTION CONSULTA]![EXPEDIENTE]=" & [EXPEDIENTE]

Suerte y saludos.
Enrique
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:Impresión de informes

Publicado por Marcos (236 intervenciones) el 20/03/2009 16:14:33
No le veo el problema.
Si puedes enviar tu BD para echarle un vistazo, ya que no encuentro que está funcionando mal. Seguro debe haber un detallito por ahí.
Marcos
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:Impresión de informes

Publicado por Paco (38 intervenciones) el 23/03/2009 16:29:33
Marcos, el error era mío en la consulta...perdona, la volví a repasar y logré que funcionara perfectamente.

Enrique, con tu código he aprendido que se puede integrar la consulta en el propio código.

Muchas gracias a ambos, con esta clase de ejemplos es como realmente se va aprendiendo y avanzando en cualquier entorno.
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