• Jueves 28 de Marzo de 2024, 23:24

Autor Tema:  Re: Utilizar los Informes de Acces  (Leído 5567 veces)

Gerard

  • Miembro MUY activo
  • ***
  • Mensajes: 188
    • Ver Perfil
Re: Utilizar los Informes de Acces
« en: Lunes 1 de Septiembre de 2003, 21:42 »
0
Hola amigos, hace unos dias estoy buscando un buen manual para utilizar los reportes de acces, pero no encontrado ninguno que sea interesante. ¿ Alguien tiene un buen manual para crear informes en acces ?, también he buscado sobre crystal, pero prefiero acces.


Gracias! :beer::adios:
Moderador Noticiario - Programador Visual Basic

Gerard

  • Miembro MUY activo
  • ***
  • Mensajes: 188
    • Ver Perfil
Re: Utilizar los Informes de Acces
« Respuesta #1 en: Martes 2 de Septiembre de 2003, 08:06 »
0
:hola:He encontrado uno de interesante:
http://www.aulaclic.com/access2002/t_12_1.htm

Pero, ese manual no cubre del todo mis necesidades. Como puedo mostrar desde vb el informe? Como le puedo conectar a un informe mas de una tabla, como puedo realizar filtros en un informe?

Espero que me ayuden,:):adios:
Moderador Noticiario - Programador Visual Basic

Brroz

  • Miembro de PLATA
  • *****
  • Mensajes: 1058
    • Ver Perfil
Re: Utilizar los Informes de Acces
« Respuesta #2 en: Martes 2 de Septiembre de 2003, 08:22 »
0
Para imprimir el informe desde vb fíjate en este ejemplo:

Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long

Public Function Imprimir(ByVal Formato As String, ByVal Filtro As String _
, Optional ByVal VistaPrevia As Boolean) As Boolean
   
    On Error GoTo Error_Imprimir
   
    Dim sngMouseP As Single
    sngMouseP = Screen.MousePointer
    Screen.MousePointer = 11
    DoEvents
   
    Dim dbW As Object
    Set dbW = GetObject("BaseDeDatos.mdb")
   If VistaPrevia Then ShowWindow dbW.hWndAccessApp, 3
    On Error Resume Next
    dbW.UserControl = False
    On Error GoTo Error_Imprimir
    Dim int1 As Integer
    If VistaPrevia Then int1 = 2 '2 = acViewPreview , 0 = acViewNormal
    If dbW.Reports.Count = 0 Then
        dbW.DoCmd.OpenReport Formato, int1, , Filtro
    Else
        Dim lng1 As Long
        For lng1 = 0 To dbW.Reports.Count - 1
            If dbW.Reports(lng1).Name = Formato Then
                dbW.Reports(Formato).Filter = Filtro
                GoTo Exit_Fn
            End If
        Next lng1
        dbW.DoCmd.OpenReport Formato, int1, , Filtro
    End If
   
Exit_Fn:
    Imprimir = True
   
Salir_Imprimir:
    On Error Resume Next
    If Not VistaPrevia Then
        dbW.Quit
    Else
        dbW.DoCmd.Maximize
        dbW.UserControl = True
    End If
    Set dbW = Nothing
    Screen.MousePointer = sngMouseP
    Exit Function
   
Error_Imprimir:
    MsgBox "Fallo al imprimir informe '" & Formato & "'" & String(2, vbCrLf) _
    & "(" & Err.Number & ") " & Err.Description, vbCritical, "Imprimir"
    VistaPrevia = False
    Resume Salir_Imprimir

End Function

Con respecto a lo de tener varias tablas como origen de registro para tu informe, utiliza como origen de registro para el informe (propiedad RowSource) una consulta de access o instrucción SQL.

Espero que esto te vaya bien.
Sort.

Jordi_BCN

  • Miembro activo
  • **
  • Mensajes: 59
    • Ver Perfil
Re: Utilizar los Informes de Acces
« Respuesta #3 en: Martes 2 de Septiembre de 2003, 12:23 »
0
Gracias por el manual Gerard:) Es justo lo que estaba buscando:gracias:
Jordi_BCN ···· Barcelona

Gerard

  • Miembro MUY activo
  • ***
  • Mensajes: 188
    • Ver Perfil
Re: Utilizar los Informes de Acces
« Respuesta #4 en: Martes 2 de Septiembre de 2003, 15:34 »
0
Gracias Brroz, voy a provar tu codigo, en cuanto lo haga te informare si funciona;)

Salu2 y gracias :adios:
Moderador Noticiario - Programador Visual Basic

Gerard

  • Miembro MUY activo
  • ***
  • Mensajes: 188
    • Ver Perfil
Re: Utilizar los Informes de Acces
« Respuesta #5 en: Miércoles 10 de Septiembre de 2003, 15:34 »
0
El codigo que me distes no lo entiendo mucho:(. Por favor, ya se que es pedir mucho, pero podrias pasar un ejemplo?

Para que no tengas que hacer el reporte, te paso mi BD, así solo deberas hacer lo de vb.


Espero que me ayuden, me urge:)
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.
Moderador Noticiario - Programador Visual Basic

Brroz

  • Miembro de PLATA
  • *****
  • Mensajes: 1058
    • Ver Perfil
Re: Utilizar los Informes de Acces
« Respuesta #6 en: Jueves 11 de Septiembre de 2003, 08:20 »
0
Hola Gerard.

Acabo de probar el código tal cual con el informe de tu bd y funciona sin problemas. El único cambio que tuve que hacer, por supuesto, es la línea donde dice 'Set dbW = GetObject("BaseDeDatos.mdb")' donde reemplacé la ruta y nombre de la base de datos: 'Set dbW = GetObject("C:RutaMy_bd.mdb"). Si a ti no te funciona, cuéntame cúal es el fallo que te da.

Me imagino que la parte de código que no entiendes es la del bucle For...Next que recorre los INFORMES ABIERTOS de la base de datos comparando el nombre. Pues bien, lo tuve que hacer así para evitar errores y aplicar correctamente el filtro en el caso de que Access y el informe ya  estuvieran abiertos.

Básicamente el código abre Access mediante automatización, asigna a dbW una referencia a la base de datos, y utiliza el objeto DoCmd tal como lo harías desde Access.

A ver si se te aclara un poco más el tema.
Chao.

Gerard

  • Miembro MUY activo
  • ***
  • Mensajes: 188
    • Ver Perfil
Re: Utilizar los Informes de Acces
« Respuesta #7 en: Viernes 12 de Septiembre de 2003, 15:44 »
0
Brroz, mandame un ejemplo sencillo que al pulsar un command se carge el informe;)
Se que es pedirte mucho:( pero es q no acabo de entenderlo. Gracias.

Salu2 :adios:
Moderador Noticiario - Programador Visual Basic

Brroz

  • Miembro de PLATA
  • *****
  • Mensajes: 1058
    • Ver Perfil
Re: Utilizar los Informes de Acces
« Respuesta #8 en: Lunes 15 de Septiembre de 2003, 15:02 »
0
Hola Gerard

Disculpa la tardanza pero es que ando liado...

Te adjunto el ejemplo que me pedías, espero que te sirva.

Sort.
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

Gerard

  • Miembro MUY activo
  • ***
  • Mensajes: 188
    • Ver Perfil
Re: Utilizar los Informes de Acces
« Respuesta #9 en: Martes 16 de Septiembre de 2003, 22:16 »
0
Gracias Brroz, pero hay un problema:

Al hacer la vista previa del informe, sale la ventana de Acces, con el titulo "Informe 1" pero todo el fondo de color gris. (puedes verlo en el screen). No se a que se debe:( Pero si se puede imprimir sin hacer la vista previa.

Espero que me puedan ayuda;):) :good::adios:

Screenshot:
Moderador Noticiario - Programador Visual Basic

Brroz

  • Miembro de PLATA
  • *****
  • Mensajes: 1058
    • Ver Perfil
Re: Utilizar los Informes de Acces
« Respuesta #10 en: Miércoles 17 de Septiembre de 2003, 14:44 »
0
Supongo que me crees si te digo que a mi me funciona perfectamente... La diferencia puede estar en que yo utilizo Access97. A ver si encontramos el problema...

Chao.

Brroz

  • Miembro de PLATA
  • *****
  • Mensajes: 1058
    • Ver Perfil
Re: Utilizar los Informes de Acces
« Respuesta #11 en: Miércoles 17 de Septiembre de 2003, 15:27 »
0
Hola de nuevo.

¿Probaste el ejemplo con la bd que tú adjuntaste, o has utilizado otra?

Bueno, realmente 2 preguntas:

¿Que access utilizas?

Deu.

Gerard

  • Miembro MUY activo
  • ***
  • Mensajes: 188
    • Ver Perfil
Utilizar los Informes de Acces
« Respuesta #12 en: Miércoles 17 de Septiembre de 2003, 22:26 »
0
He probado directamente de la BD que hay en el ejemplo. Por cierto, tengo acces 2002, pero el formato de la BD es de acces 97.


Espero encontrar solución:)

Salu2 y gracias Brroz :good: :adios:
Moderador Noticiario - Programador Visual Basic