Hola Juan Carlos,
puedes ejecutar un informe de Acces, creando un objeto access desde VB
Set ObjAcc = CreateObject ("Access.Application")
y luego llamar a la funcion VBA de Access para ejecutar el informe
ObjAcc.DoCmd.OpenReport "Nombre del report"
o
ObjAcc.DoCmd.PrintReport "Nombre del report"
y a continuacion cerrar el Access,
ObjAcc.DoCmd.Quit
Set ObjAcc = Nothing
Te lo digo a ojo, asi que comprueba la sintaxis con el editor de
modulos de Access.
Suerte.
Pedro J. Sánchez
---jvelilla@dune.aig.uc3m.es wrote:
>
> Hola a todos.
> Me gustaria saber si es posible, desde Visual Basic 5.0, imprimir un
Informe
> que ha sido creado en Access, y, si es posible, el modo de hacerlo.
>
> Muchas gracias y un saludo a todos.
>
> Juan Carlos.
>
_________________________________________________________
DO YOU YAHOO!?
Get your free @yahoo.com address at http://mail.yahoo.com
> -----Mensaje original-----
> De: José Antonio Martínez Valentín [SMTP:JoMartinez@juste.net]
> Enviado el: martes 19 de mayo de 1998 11:08
> Para: vb-esp@ccc.uba.ar
> Asunto: (VB-ESP) Objeto Access
>
¡Hola José Antonio!
Yo imprimo muchos informes de Access desde Visual Basic.
Basicamente lo que tienes que hacer es esto:
dim AppAccess as Aplication
'Creas tu objeto Access
Set AppAccess = GetObject(path donde esta tu base de datos)
'Abre tu informe en modo diseño
AppAccess.DoCmd.OpenReport nombre_Informe, acViewDesign
'Le cargas la consulta que quieras (si tira de una consulta)
AppAccess.Reports(0).RecordSource = nombre_consulta
'Lo imprimes
AppAccess.DoCmd.PrintOut acPrintAll
'Lo cierras
AppAccess.DoCmd.Close acReport, nombre_Informe
Buena suerte. Si quieres saber algo mas, hazmelo saber
Un saludo
Raquel García <RGarcia@Sogepaq.es>
> ===================================================
> Hola compañer@s de fatigas!!!.
> Tengo una preguntita a ver si sabéis la respuesta:
> Quiero abrir un informe de Access desde Visual Basic. Para que a traves
> del programa
> pueda imprimirlo. ¿Sabeis que codigo se utiliza para hacer esto?
Bueno, despues de unas cuantas horas delante de la pantalla he
hola Ariel:
resuelto este problema.
Envio el resultado porque he visto que hay alguien en la lista que tiene
un problema similar.
Const STILL_ACTIVE = 0
Const SW_MAXIMIZE = 3
Dim THandle As Long
Private Declare Function FindWindow Lib "user32" Alias _
"FindWindowA" (ByVal lpClassName As Any, ByVal lpWindowname As Any)
_
As Long
Private Declare Function ShowWindow Lib "user32" (ByVal hWnd&, _
ByVal nCmdShow As Long) As Long
Private Sub ImprimirInforme()
Dim AppAccess As Object, iret As Long
Dim hWnd As Long, temp As Long
Set AppAccess = GetObject("
AppAccess.DoCmd.Maximize
If Not AppAccess.UserControl Then AppAccess.Visible = True
temp = ShowWindow(AppAccess.hWndAccessApp, SW_MAXIMIZE)
Do
THandle = FindWindow(vbEmpty, "Microsoft Access -
[OS_CABECERA]")
Loop While THandle <> STILL_ACTIVE
AppAccess.Application.Quit
Set AppAccess = Nothing
End Sub
un saludo a todos,
QuiQue
Te envio este trozo de codigo que te permite lanzar un informe
generado
en Access, utiliza 2 Apis, una para controlar que el Access se esta
ejecutando
y otro que situa el enfoque sobre el Access. Para que funcione tienes
que
tener instalado el componente de M.Access 8.0
Const STILL_ACTIVE = 0
Const SW_MAXIMIZE = 3
Dim THandle As Long, AppAccess As Object, iret As Long
Dim hWnd As Long, temp As Long
Dim NomInforme As String
Private Declare Function FindWindow Lib "user32" Alias _
"FindWindowA" (ByVal lpClassName As Any, ByVal lpWindowname As
Any) _
As Long
Private Declare Function ShowWindow Lib "user32" (ByVal hWnd&, _
ByVal nCmdShow As Long) As Long
NomInforme = "Microsoft Access - [" & vInforme & "]"
Set AppAccess = GetObject("C:\Pp99\Pp99.mdb")
AppAccess.DoCmd.OpenReport vInforme, acPreview
AppAccess.DoCmd.Maximize
If Not AppAccess.UserControl Then AppAccess.Visible = True
temp = ShowWindow(AppAccess.hWndAccessApp, SW_MAXIMIZE)
Do
THandle = FindWindow(vbEmpty, NomInforme)
Loop While THandle <> STILL_ACTIVE
AppAccess.Application.Quit
Set AppAccess = Nothing
Espero que sea de tu utilidad,
un saludo. QuiQue
Resumen