Importar reportes.

Mi pregunta es:
Yo tengo una base de datos realizada en access 2000 y en esa base de datos tengo los informes o reportes hechos; yo estoy realizando una aplicación en visual basic 6.0 para en la cual estoy uniendo esa base de datos, para conectar la base de datos estoy utilizando en control data de ado.
Mi problema es que quiero que visual basic me traiga los informes o reportes que tengo hechos en la base de datos, necesito que visual basic me traiga esos informeso o reportes tal cual están hechos en access. Como puedo hacer esto.
Gracias por la atención prestada.

3 respuestas

Respuesta
1
Debes usar OLe Automation. Este es una subrutina que te imprime cualquier reporte de Access
Sub ImprimirInformeAccess(TuMDB As String, TuInforme As String, blnPreview As Boolean)
Dim objAccess As Access.Application
On Error GoTo ImprimirInformeAccess_ErrHandler
Set objAccess = CreateObject("Access.Application")
With objAccess
.OpenCurrentDatabase filepath:=TuMDB
If blnPreview Then
.Visible = True
.DoCmd.OpenReport reportname:=TuInforme, View:=acViewPreview
Else
.DoCmd.OpenReport reportname:=TuInforme, View:=acNormal
DoEvents
End If
End With
Set objAccess = Nothing
Exit Sub
ImprimirInformeAccesst_ErrHandler:
MsgBox Error$(), , "Errort"
End Sub
Para usar esta subrutina debes crear una referencia a la biblioteca de objetos de Access (la version que vayas a usar). Para ello vas al Menu de Proyecto, Referencias
Gracias.
Como se llama la referencia a la biblioteac de objetos de access.
Gracias por la atención prestada.
Muy fácil...!
Entras a VB, abres tu proyecto, Abres el Menu proyecto, referencias y buscas la Biblioteca de Objectos de Microsoft Access (La version que tengas instalada)
Cabe destacar que esta debe ser la misma version que necesitas tener instalada en la maquina de tus clientes
Gracias tu ayuda me sirve, ¿ahora desea saber en que evente y de que objeto debo colocar el código anterior?
Gracias
El código de llamar al informe donde quieres que el informe sea ejecutado. Puede ser la opción de un menu, en el evento click de un botón dentro de un formulario, ya eso depende de tu aplicación
En este momento ya estoy probando tu código, a medida que escribo tu código me surgen unas preguntas.
1)Por que antes de cada instrucción colocas un punto(.)
2) cuendo colo todo ese código en un botón de comando, evento click me sale
se esperaba end sub y le doy aceptar y me coloca en amarillo
Private Sub Command1_Click()
3) Donde dice filepatch debo de colocar la ruta de ma mdb o simplemente al nombre.
Gracias por la ayuda.
1) No es una coma es un punto y es el resultado de usar la instrucción With (With objAccess). Esto es para no escribir objAccess. Para todas las llamadas a los métodos y propiedades.
2) El código que te envíe de por si es una subrutina, así que coloca en el evento click del botón, lo siguiente
Private Sub Command1_Click()
Call ImprimirInformeAccess("PathDeTuMDB", "ElInformeQueQuieresMostrar", True )
End Sub
3) Colocas la ruta completa de tu MDB eso eso quiere decir el path más el nombre (c:\Archivos de Programa\Office\Ejemplos\Neptuno.mdb"
Respuesta
1
Primero que nada..
El comando que necesitas es...
DoCmd. OpenReport "Informe1", acNormal, "", ""
Con ese Abres el Informe (Preview)
Para imprimir...
DoCmd.PrintOut acPrintAll, , , acHigh, 1, True
Te recomiendo que leas la Ayuda de Access para VB
Suerte
Gracias tu ayuda me ha servido.
Te pregunto que si no tengo que llamar la base de datos, en que evento y de que objeto debo de insertar este código.
Gracias.
Puedes Insertar un Botón, y le asignas la propiedad Caption= "Imprimir".
Y en el evento Click del Botón insertas el Código.
Suerte
Respuesta
1
Perdona la demora en contestarte pero es que he estado todo este mes fuera de linea.
Sobre los informes de Access te tengo que dar gran mala noticia (para mi también lo es) que VB solo te permite acceder a las tablas y consultas, a ningún otro objeto (formulario o informe).
No te queda otra que hacer lo que alguna vez hice en mis inicios: rediseñar formularios e informes completos (grrr).

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas