SoloCodigo

Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: Gerard en Lunes 1 de Septiembre de 2003, 21:42

Título: Re: Utilizar los Informes de Acces
Publicado por: Gerard en Lunes 1 de Septiembre de 2003, 21:42
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:
Título: Re: Utilizar los Informes de Acces
Publicado por: Gerard en Martes 2 de Septiembre de 2003, 08:06
:hola:He encontrado uno de interesante:
http://www.aulaclic.com/access2002/t_12_1.htm (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:
Título: Re: Utilizar los Informes de Acces
Publicado por: Brroz en Martes 2 de Septiembre de 2003, 08:22
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.
Título: Re: Utilizar los Informes de Acces
Publicado por: Jordi_BCN en Martes 2 de Septiembre de 2003, 12:23
Gracias por el manual Gerard:) Es justo lo que estaba buscando:gracias:
Título: Re: Utilizar los Informes de Acces
Publicado por: Gerard en Martes 2 de Septiembre de 2003, 15:34
Gracias Brroz, voy a provar tu codigo, en cuanto lo haga te informare si funciona;)

Salu2 y gracias :adios:
Título: Re: Utilizar los Informes de Acces
Publicado por: Gerard en Miércoles 10 de Septiembre de 2003, 15:34
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:)
Título: Re: Utilizar los Informes de Acces
Publicado por: Brroz en Jueves 11 de Septiembre de 2003, 08:20
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.
Título: Re: Utilizar los Informes de Acces
Publicado por: Gerard en Viernes 12 de Septiembre de 2003, 15:44
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:
Título: Re: Utilizar los Informes de Acces
Publicado por: Brroz en Lunes 15 de Septiembre de 2003, 15:02
Hola Gerard

Disculpa la tardanza pero es que ando liado...

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

Sort.
Título: Re: Utilizar los Informes de Acces
Publicado por: Gerard en Martes 16 de Septiembre de 2003, 22:16
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:
(http://www.iespana.es/solocodigo/acces.jpg)
Título: Re: Utilizar los Informes de Acces
Publicado por: Brroz en Miércoles 17 de Septiembre de 2003, 14:44
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.
Título: Re: Utilizar los Informes de Acces
Publicado por: Brroz en Miércoles 17 de Septiembre de 2003, 15:27
Hola de nuevo.

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

Bueno, realmente 2 preguntas:

¿Que access utilizas?

Deu.
Título: Utilizar los Informes de Acces
Publicado por: Gerard en Miércoles 17 de Septiembre de 2003, 22:26
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: