2009-05-12 5 views
1

Nous importons des modules de code dans une application à l'aide Access 2002 la ligne ci-dessous dans VBAErreur d'accès VBA 2486 DoCmd.Save

Application.VBE.ActiveVBProject.VBComponents.Import (strFileName)

Cette partie fonctionne très bien, la ligne immédiatement après les tentatives pour sauver la nouvelle classe au projet. La seule façon que nous pouvons voir à faire est d'utiliser DoCmd:

DoCmd.Save acModule, strModuleName 

PARFOIS, il en résulte

Erreur 2486: Vous ne pouvez pas effectuer cette action à l'heure actuelle.

Une version plus longue de l'erreur donne les éléments suivants:

Vous ne pouvez pas effectuer cette action à l'heure actuelle. Vous avez essayé d'exécuter une macro ou utilisé l'objet DoCmd dans Visual Basic pour effectuer une action. Toutefois, Microsoft Access effectue une autre activité qui empêche cette action d'être effectuée maintenant. Le fait que cela indique Access is performing another activity semble logique, car nous ne recevons parfois l'erreur. Y a-t-il un moyen de savoir ce qu'il est en train de faire et d'attendre que ça finisse? Ou existe-t-il une meilleure façon d'implémenter l'importation de modules?

je pensais à écrire quelque chose qui serait alors que la propriété module.Saved est vrai, mais ce code est assez méchant sans que ....

+0

Pouvez-vous nous donner un peu plus du code précédant l'erreur? – BIBD

Répondre

0

Essayez de mettre un DoEvents appeler juste avant votre sauvegarde. Cela peut aider Access à finir ce qu'il fait.

0

Depuis Access 2000, le projet VBA est stocké en tant que champ BLOB unique dans un seul enregistrement dans l'une des tables système. Cela signifie que vous exécutez du code à partir du même projet que vous essayez d'enregistrer, et je ne suis pas sûr que cela soit possible. Cela semble conceptuellement très problématique.

0

Vous pouvez utiliser les commandes non documentées Application.SaveAsText et Application.LoadFromText à la place.