PDA

Ver la Versión Completa : ejecutar macro access desde delphi


oliviagadel
28-07-2005, 22:13:22
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, 23: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, 23:31:17
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, 10: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 (http://www.clubdelphi.com/foros/guiaestilo.php)

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


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, 11:51:11
Muchas Gracias por la respuesta, y perdona pensaba q los foros eran independientes.... me tengo q leer esa guia.

jdattoli
03-02-2006, 20: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