L'exécution de macro VBA dans Access 2010 externes VBScript

Pas sûr que c'est possible, mais il semble que cela devrait être faisable.... c'est en 2013, après tout! Et certains posts sur le forum, j'ai trouvé suggèrent qu'il est, mais je n'ai pas réussi à la faire fonctionner...

J'ai une db Access 2010 avec une macro qui télécharge des fichiers à partir de 3 différents sites web et procède ensuite à importer les données et les traiter. Il fonctionne pendant 1 heure et 17 minutes.

Je veux programmer cette macro à exécuter à 4h du matin, donc il est tout fait et dépoussiéré par l'heure du café et du début du travail de 8h... j'ai Donc créé un script VBScript pour exécuter cette, qui seront ensuite placées dans le Planificateur de Tâches pour la durée souhaitée.

C'est un seul utilisateur DB, mon utilisation uniquement sur mon PC.

J'ai fait quelques recherches mais je n'arrive pas à obtenir ce travail. Voici ce que j'ai à ce jour:

Macro à l'intérieur de "Principal" module dans Access 2010, à l'intérieur de "Modèle de Tarification.accdb":

Public Sub Download_And_Import()
    ProcStep = ""
    ExecStep = 1
    DoCmd.SetWarnings False
    'Empty the Execution Progress table
    DoCmd.RunSQL "DELETE * FROM EXECUTION_PROGRESS"
    Call Update_EXECUTION_PROGRESS(Format(Now(), "YYYY/MM/DD HH:MM:SS"), ExecStep, "Starting Download_Files Main Procedure...")
    Call Download_Files.Download_Files
    Call Update_EXECUTION_PROGRESS(Format(Now(), "YYYY/MM/DD HH:MM:SS"), ExecStep, "Finished Download_Files Main Procedure...")
    Call Update_EXECUTION_PROGRESS(Format(Now(), "YYYY/MM/DD HH:MM:SS"), ExecStep, "Starting Import_Files Main Procedure...")
    Call Import_Files.Import_Files
    Call Update_EXECUTION_PROGRESS(Format(Now(), "YYYY/MM/DD HH:MM:SS"), ExecStep, "Finished Import_Files Main Procedure, closing application now...")
    DoCmd.SetWarnings True
End Sub

Ensuite, j'ai créé le VBScript suivant à exécuter Access VBA Macro externe:

dim accessApp
set accessApp = createObject("Access.Application")
accessApp.OpenCurrentDataBase("G:\Pricing DB\Pricing Model.accdb")
accessApp.Run "Download_And_Import"
accessApp.Quit
set accessApp = nothing

Je reçois le message "appel de fonction non valide, la Ligne 4", qui est l'étape:

accessApp.Run "Download_And_Import"

Toutes les idées /de l'aide est très appréciée! Merci à l'avance!

M

Le Code a bien fonctionné pour moi, après j'ai défini les variables ProcStep et ProcExec. Faire l'application visible (accessApp.Visible = True), de sorte que vous pouvez utiliser l'éditeur de macro pour le débogage.
Je ne suis pas en mesure de tester ce droit maintenant, mais essayez d'ajouter des parenthèses: accessApp.Run ("Download_And_Import").
Salut Ansgar Wiechers, je suis désolé mais je suis nouveau sur VBS (bien que j'ai un peu de VBA expérience). Votre suggestion, quand j'ai ajouter la ligne (accessApp.Visible = True) l'Accès s'ouvre quand je lance le SCRIPT mais j'ai toujours un Appel de Fonction non valide msg. Je ne suis pas sûr de ce que vous êtes en se référant à la définition ProcStep et ProcExec, pouvez-vous élaborer pls. Merci pour l'aide.
Salut UberNubIsTrue, j'ai essayé ta suggestion et je reçois un "Appel de Fonction non valide" message sur la ligne 4 (la Macro à exécuter). Merci!
La seule suggestion que je pourrais jeter là pour s'assurer que votre Sous n'est pas le même nom que le module dans lequel il réside. Cela a jeté les erreurs pour moi dans le passé lors de l'utilisation de application.run.

OriginalL'auteur TheRealPapa | 2013-07-14