none
Execution d'une Macro Access à partir d'un code C# RRS feed

  • Discussion générale

  • Bonjour à tous,

    Je travaille sur un programme en C# qui communique avec une base Access et execute ses Macros. Tout marchait bien jusqu'à ce que je passe sur Visual Studio 2010.

    Le problème survient lorsque j'utilise la fonction :
    oApp.GetType().InvokeMember("Run", System.Reflexion.BindingFlags.Default | System.Reflexion.BindingFlags.InvokeMethod, null, oApp, oRunArgs);

    En me renseignant un peu je me suis rendu compte que cette fonction avait été simplifié pour Visual Studio 2010 mais impossible de trouver cette nouvelle fonction...

    Pouvez vous m'aider ?

    vendredi 1 juillet 2011 06:55

Toutes les réponses

  • Bonjour,

    Quelle version de visual studio utilisiez vous ?  Avez vous changé de version du framework en changeant de version de visual studio ? et surtout quel est le "problème" ( message d'erreur ? comportement différent du comportement attendu ? )

    Cordialement

    vendredi 1 juillet 2011 12:00
    Modérateur
  • J'utilise Visual Studio 2010 et non je n'ai pas changé de version de Framework.

    Avec l'ancienne version tout fonctionnait normalement, lorsque je lançait les différentes macros de ma base de données, tout fonctionnait. Alors que maintenant lorsque je lance ma macro, le programme n'affiche pas d'erruer mais a la fin de l'exécution, la base de données n'est pas du tout modifiée...

    vendredi 1 juillet 2011 12:23
  • Il n'y a pas de raison pour que le comportement soit différent en changeant de version de visual studio surtout si vous avez conservé la même version du framework.

    N'y a t il pas un block Catch dans l'application qui vous empêche de voir une erreur eventuellement déclenchée ? Quand vous débuggez le code en pas à pas vous n'avez aucune erreur de lancée ? Aucun changement sur la base access ?

    Si l'on  regarde ce post, vous pouvez également essayé de lancer la macro avec :

     

    oApp.DoCmd().RunMacro("MaMacro")

    Cordialement

     


    vendredi 1 juillet 2011 12:59
    Modérateur
  • Bonjour, Baptiste900,

    Pouvez-vous svp nous donner les informations demandées pas Nikho concernant le try-catch block ? Puis, est-ce que vous avez testé la solution proposée concernant le lancement d’une macro ? Merci pour partager avec nous les résultats, afin que d'autres personnes avec le même problème puissent profiter de cette solution.

     

    Bonne journée,

    Cipri


    Suivez MSDN sur Twitter   Suivez MSDN sur Facebook


    Ciprian DUDUIALA, MSFT  
    •Nous vous prions de considérer que dans le cadre de ce forum on n’offre pas de support technique et aucune garantie de la part de Microsoft ne peut être offerte.

    lundi 4 juillet 2011 06:59
  • Bonjours Batiste

    Essayer ce bout de code Batiste

    Microsoft.Office.Interop.Access.Application oAccess = new Microsoft.Office.Interop.Access.Application();
       oAccess.Visible = true;
       oAccess.OpenCurrentDatabase(@"le chemin .mdb", false, "");
       oAccess.DoCmd.RunMacro("<le nom du macro>", 0, ""); 

    Cordialement

     


    The complexity resides in the simplicity Follow me at: http://smartssolutions.blogspot.com
    mercredi 6 juillet 2011 17:14