J'ai cherché pendant quelques jours pour une réponse simple à cette question:Quand code de rapport MS-Access VBA exécuter
Est-ce que le code VBA derrière/dans un rapport exécuté lorsque le rapport est ouvert en mode Aperçu ET caché?
J'ai hérité d'une base de données Access 2003 P-O-S (non point de vente) (écrite principalement en allemand) qui a un rapport avec un module VBA très long et compliqué. J'ai besoin du code à exécuter lorsque le rapport est exécuté en mode Aperçu, mais ce n'est pas le cas.
Le rapport est appelé à partir d'un formulaire avec la ligne suivante:
DoCmd.OpenReport "Fertigungszettel",acPreview, , , acHidden
Je puis fermez le formulaire avec la ligne suivante
DoCmd.Close acReport, "Fertigungszettel", acSaveNo
Le problème est que le code/derrière/joint au rapport ne semble pas courir. Je pensais que je devais retarder la fermeture de sorte que l'accès ait eu le temps d'exécuter du code, donc j'ajouté ce qui suit au rapport vba
Private Declare Sub Sleep Lib "kernel32" (ByVal dwmilliseconds As Long)
Public SleepPls(ByVal ISecs As Long)
Sleep(ISecs * 1000)
End Sub
Et j'ai ajouté la ligne de l'appeler comme ceci:
SleepPls(10)
Mais cela n'a fait aucune différence. Quelqu'un peut-il m'expliquer cela ou me pointer quelque part pour l'expliquer de façon simple? Je demande un moyen simple parce que je vais devoir expliquer cela à la haute direction qui ne sont pas Dev. (Pas même proche).
Merci d'avance.
Vérifiez s'il y a un OnOpen ou Activer événement. – geeFlo
Si vous ouvrez le rapport uniquement pour exécuter du code, le code n'appartient pas au rapport. Il devrait être dans un module général à exécuter en cas de besoin. – Andre