Come eseguire più Macro Access da un’applicazione o un altro database

L’esempio sottostante vi dimostra come possiamo eseguire una Macro Access da un’altra applicazione o database usando l’OLE Automation.

Eseguiamo i seguenti passi:

  • creiamo due database Access chiamandoli TestDB.mdb e TestDB2.mdb
  • nel primo database TestDB.mdb creiamo una macro chiamandola TestMsg con la seguente azione: Finestra Messaggio “Test Macro”
  • nel secondo database TestDB2.mdb creiamo un’altra macro chiamandola TestMsg con la seguente azione: Finestra Messaggio: “Test Macro2”
  • nell’applicazione che userete scegliete tra i riferimenti Microsoft Access Object Library (dalla versione 8.0 in poi)

Microsoft Access

Creiamo la seguente Sub:

Sub RunMacroX()
Dim objACC As New Access.Application
Set objACC = GetObject("C:\TestDB.mdb") 'open first database objACC.DoCmd.RunMacro ("TestMsg") 'run macro objACC.Quit Set objACC = GetObject("C:\TestDB2.mdb") 'open second database objACC.DoCmd.RunMacro ("TestMsg") 'run macro objACC.Quit Set objACC = Nothing
End Sub

 

Nel caso in cui otteniate un Errore del genere: “L’azione RunMacro è stata annullata. Errore 2501” o “The RunMacro action was canceled“.

L’errore è dovuto all’esistenza di una dichiarazione di Esci dalla Macro oppure Arresta Macro. Se notate che, anche in presenza dell’errore la macro ha completato la sua attività, potete benissimo usare l’On Error Resume Next a inizio Sub.

Testato su Office 2003 e su Office 2007.

Alla Prox.

Se volete seguire i post di www.informarea.it potete iscrivervi al suo feed RSS.


Fabrizio Cannatelli

Autore e Founder di Informarea, sono un appassionato di informatica e tecnologia da sempre. La voglia di comunicare e di condividere sul Web le mie curiosità e le mie conoscenze, mi ha spinto a lanciarmi nel progetto di questo sito. Nato un po' per gioco e un po' per passione, oggi è diventato una grande realtà.

Fabrizio Cannatelli

Approfondimenti