Pb pour lancer une fonction sur une base distante(access2000)

Résolu
tryggvi Messages postés 2 Date d'inscription lundi 21 avril 2003 Statut Membre Dernière intervention 3 août 2008 - 31 juil. 2008 à 09:29
tryggvi Messages postés 2 Date d'inscription lundi 21 avril 2003 Statut Membre Dernière intervention 3 août 2008 - 3 août 2008 à 20:21
Bonjour à tous,
 
J'ai des soucis pour faire exécuter une fonction ou une macro sur une autre base que la base en cours.
Je suis dans Module1, j'ajoute une nouvelle table dans une autre base
(appelée test.mdb), j'exporte aussi Module1 vers test.mdb. La table et
le module sont bien dans la nouvelle base, mais la fonction bute sur la
ligne:


acApp.DoCmd.RunMacro "exporter4"


avec le message:"erreur d'exécution 2485 Microsoft Access ne peut pas trouver la fonction exporter 4."

J'avais trouvé, sur ce forum il me semble, la solution consistant à remplacer la ligne par:


acApp.run "exporter4"


mais là il me dit que le Module1 n'existe pas... alors qu'il me l'ouvre.

Voici le code:

Dim conn AsNew ADODB.Connection
Dim cnn AsNew ADODB.Command
conn.Open"Provider=Microsoft.jet.OLEDB.4.0.; data source=d:\test.mdb"
cnn.ActiveConnection = conn
cnn.CommandType = adCmdText
'insertion d'une nouvelle table dans la base
cnn.CommandText = "ALTER TABLE SO_T ADD COLUMN aaa String (50);"
Set rs = cnn.Execute
conn.Close
 
'copie du module1
DoCmd.CopyObject"d:\test.mdb", "Module1", acModule, "Module1"
 
Dim acApp AsNew Access.Application
' Démarrer Access
Set acApp = New Access.Application
' Ouvrir la base de données concernée
acApp.OpenCurrentDatabase("d:\test.mdb")
' Exécuter la macro
acApp.DoCmd.RunMacro"exporter4"
' Quitter Access
acApp.Quit
Set acApp = Nothing
 

2 réponses

youpiyoyo Messages postés 539 Date d'inscription vendredi 6 juin 2003 Statut Membre Dernière intervention 14 juillet 2010
1 août 2008 à 14:33
Salut,
tu as essayés en sauvegardant ta bases avant de faire new access.application. si ta fonction est dans un module ce n'est pas runmacro mais acApp.run "exporter4".
Et surtout il faut que ta fonction ou sub soit déclarer en public.
@+
youpi :)
3
tryggvi Messages postés 2 Date d'inscription lundi 21 avril 2003 Statut Membre Dernière intervention 3 août 2008
3 août 2008 à 20:21
Ca a fini par marcher, en déclarant "public" toutes les fonctions et en les regroupant toutes dans le module (je n'avais pas mis la totalité du code, la fonction appelait d'autres fonctions, dont certaines étaient sur un formulaire).
Merci beaucoup!
0
Rejoignez-nous