Bonjour!
Voici le contexte:
Depuis une procédure dans mon classeur Excel, j'appelle une procédure écrite dans Access. Code Excel :
Code Access :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Sub updateAccess() '**** Method that calls method from Access to update table **** Dim acApp As Access.Application Set acApp = New Access.Application acApp.OpenCurrentDatabase ("K:\Database\SP7LOG01 Masterdata.accdb") 'open access database acApp.Run ("createNewTable") 'call Access method acApp.CloseCurrentDatabase 'close DB Set acApp = Nothing MsgBox "Database updated." End Sub
Les deux documents (Excel et Access) sont sur un réseau. Je m'y connais pas très bien en réseau, mais en gros, comme je pense dans toutes les entreprises, on a un réseau avec plus ou moins d'accès à certains documents. Les documents sont sur un ordi auquel j'ai accès grâce au réseau.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Function createNewTable() '**** Main function called by excel to update the table **** DoCmd.RunSavedImportExport ("New Import") 'import the new data DoCmd.SetWarnings False DoCmd.RunSQL "DELETE * FROM [SAP New] WHERE Material IS NULL" 'in case there are some empty records in the new table, we delete them DoCmd.SetWarnings True Call updateTable CurrentDb.Execute ("DROP TABLE [SAP New]") 'delete table with imported data End Function
Et voici le problème:
Quand je teste la procédure Excel sur mon ordi, tout marche très bien! Par contre, un collègue a essayé sur son ordi (qui a accès au même réseau) et, il reçoit le message d'erreur suivant : "Erreur 40351. La méthode Run de Application a échoué" (traduction du néerlandais, alors je ne garantie pas que ce soit la formulation française exacte).
Auriez-vous une idée de pourquoi ce message d'erreur apparaît?
Ce que j'ai déjà testé:
- Ajouter le nom du classeur avant le nom de la macro.
Là, ça ne marche même plus chez moi
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 acApp.Run ("'SP7LOG01 Masterdata.accdb'!createNewTable") 'au lieu de : acApp.Run ("createNewTable")J'ai un message d'erreur : "Microsoft Access ne trouve pas la procédure ...."
- Faire un Sub plutôt qu'une Function dans Access. Pas de changement.
Merci d'avance pour votre aide !
Partager