Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   ejecutar macro access desde delphi (https://www.clubdelphi.com/foros/showthread.php?t=23805)

oliviagadel 28-07-2005 21:13:22

ejecutar macro access desde delphi
 
Hola,
voy a imprimir uninforme de access desde delphi,

Access:=CreateOleObject('Access.Application');
Access.OpenCurrentDataBase('C:\informes\bd1.mdb');
Access.Visible:=true;
Access.DoCmd.OpenReport('informe1', acViewPreview, EmptyParam, EmptyParam);

pero antes de visualizar el informe me gustaria ejecutar una macro que tengo en mi base de datos delphi. si es posible, ¿como puedo hacerlo?

Muchas gracias

marcoszorrilla 28-07-2005 22:17:15

Pues no creo que eso pueda hacerse, he mirado la paleta servers y no veo opciones de ejecutar macros ni tampoco desde Ado, pero al fin y al cabo una macro puede transformarse a Código Visual Basic desde Access con ta solo guardar como, por lo tanto si lo que hace la macro se puede hacer también con código visual basic, también tiene que poder hacerse desde Delphi, te conectas con Delphi y ejecutas el código que desees y luego lanzas el informe.

Un Saludo.

oliviagadel 28-07-2005 22:31:17

Gracias
 
Gracias, bueno ya he visto que se puede ejecutar de la siguiente forma:

winexec('c:\MSACCESS.EXE c:\bd1.mdb /x macro1', SW_NORMAL);

pero como tu bien dices se puede hacer lo mismo desde delphi.

Muchas Gracias

Neftali [Germán.Estévez] 29-07-2005 09:44:43

Antes de nada, por favor, revisa la guía de estilo. Has publicado el mensaje en tres foros distintos en menos de 3 horas.

Guía de estilo

En cuanto a la preguta puedes ejecutar una macro de access desde Delphi utilizando el siguiente código:

Código Delphi [-]
 procedure TForm1.Button1Click(Sender: TObject);
 var
   AccessApp: OleVariant;
 begin
   AccessApp := CreateOleObject('Access.Application');
   AccessApp.OpenCurrentDatabase('C:\Temp\dbdemos.mdb');
   try
     AccessApp.DoCmd.RunMacro('Macro1');
   except
     on Exception do
       ShowMessage('Something bad with the macro')
   end;
 end;

Deberás añadir al USES la unit ComObj.

oliviagadel 29-07-2005 10:51:11

Gracias
 
Muchas Gracias por la respuesta, y perdona pensaba q los foros eran independientes.... me tengo q leer esa guia.

jdattoli 03-02-2006 19:08:16

Hola:

inserte el codigo pero me aparece un error que me indica que acces esta abierto de modo exclusivo, sin embargo lo revise y esta en modo compartido, que puedo hacer??


Jdattoli


La franja horaria es GMT +2. Ahora son las 16:12:46.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi