Question

J'ai créé un rapport dans le rapport MS Access et écrit du code VBA pour récupérer des données et l'afficher au format MS-Word. Mais tout en générant le rapport au moment de l'exécution, le rapport affiche ou clignote d'abord pendant quelques secondes dans la vue de conception du rapport et le rapport est généré.

J'aimerais trouver une solution pour éviter ce clignotement de la vue de conception pendant la génération du rapport. Est-ce possible dans ce codage MS-Access ou VBA. ??

Je poste les lignes que j’appelais le rapport d’accès à partir du code du formulaire d’accès.

DoCmd.OpenReport rst! [Argument], acPreview

Ceci générera le rapport mais l’écran de conception clignote pendant quelques secondes pendant l’exécution.

Et il n'y a pas de code VBA écrit dans le rapport d'accès.

L’exécution en cours est la suivante: j’ai préparé les données dans une table d’accès temporaire et généré le rapport à partir de la table.

Le problème ici est que, lors du lancement du rapport en mode prévisualisation, l’écran de conception du rapport affiche quelques secondes. Cela semble mauvais du côté des utilisateurs.

Était-ce utile?

La solution

Que se passe-t-il si vous essayez ce code:

  Dim strReport As Report        
  strReport = rst!Argument
  If SysCmd(acSysCmdGetObjectState, acReport, strReport) Then
     DoCmd.Close acReport, strReport
  End If
  DoCmd.OpenReport strReport, acPreview

Ce code vérifie si le rapport est déjà ouvert dans une vue, puis le ferme s'il l'est, puis l'ouvre. Cela garantit que vous n'êtes pas en mode conception avec la fenêtre masquée.

Le code évite également tout problème de référence ByRef pouvant être associé au passage d'une valeur d'un jeu d'enregistrements à la commande OpenReport.

Autres conseils

Il semble que vous ouvriez le rapport en mode Création afin de modifier certaines propriétés. Il est peut-être possible d’éviter cela, mais vous devrez peut-être poster le code qui ouvre le rapport pour le dire avec certitude.

Comment exportez-vous le rapport vers MS-Word? Quel est le code?

Avez-vous essayé la même chose avec un simple rapport (avec une source de données de table) au lieu d'utiliser du code VBA? Peut-être que la VBA met tellement de temps à fonctionner qu'elle maintient le rapport ouvert en mode conception suffisamment longtemps pour être perceptible.

La même chose se produit lorsque j'appelle un rapport MS Access à partir d'une application VB6. La raison pour laquelle cela se produit dans mon cas est parce que j'ai un jeu de formulaires à afficher au démarrage. Si vous n'avez pas sélectionné de formulaire de démarrage, il ne devrait pas être visible, donc pas de clignotement.

Faites-moi savoir si cela vous aide.

Mike

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top