Resumen Imprimir informes de Access desde VB5   (4 mensajes )


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
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.OpenReport "", acPreview
    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

    hola Ariel:
    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 Resumen

Visual Basic Página de Visual Basic

Página principal Página principal

www.jrubi.com