IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

[Formulaire] Rafraichissement de l'affichage périodique pendant un traitement


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 20
    Points : 14
    Points
    14
    Par défaut [Formulaire] Rafraichissement de l'affichage périodique pendant un traitement
    Bonjour à tous,

    J'ai développé une application en Access 2003 avec les traitements en VBA. L'un de ces traitements est assez long (plusieurs minutes). J'ai indiqué aux utilisateurs ce qui se passe au fur et à mesure dans une étiquette sans oublier de mettre un DoEvents pour que l'écran se rafraichisse et que le message soit visible.

    Mon problème vient du fait qu'une partie de traitement ne nécessite pas d'explication supplémentaire et que donc il n'y a pas de DoEvents pendant un certain temps... Du coup, si l'utilisateur affiche une autre fenêtre et revient ensuite à mon application, il ne voit plus rien, l'écran n'étant pas rafraichi...

    J'ai bien essayé de faire un DoEvents dans une procédure SurTimer, mais elle ne se déclenche pas pendant un traitement... Donc, ça ne fonctionne pas...

    A part pourrir mon code avec des DoEvents un peu partout, y a t'il un moyen de forcer un rafraichissement périodique de mon formulaire ?

    Je vous remercie d'avance pour vos réponses.

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 017
    Points : 24 547
    Points
    24 547
    Par défaut
    Bonjour,

    La barre de progression ne suffirait pas à informer les utilisateurs de l'avancement ?
    Voir la fonction Syscmd()

    Tu peux également faire un mélange de message et de barre de progression, en tout cas le Doevents sera obligatoire.

    Cordialement,

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 20
    Points : 14
    Points
    14
    Par défaut
    Non, les utilisateurs ont besoin dans mon cas de quelque chose de bien plus "voyant" que ce que l'on peut faire avec Syscmd.

    Mais quand bien même, le reste de l'écran ne se met pas à jour et si l'on a superposé une fenêtre, celle-ci "laisse des traces" sur celle de mon application. Il faudrait trouver un moyen d'interrompre mon traitement en VBA pour faire des DoEvents. Mais je ne trouve pas comment faire...

    Mais merci pour l'idée...

  4. #4
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 017
    Points : 24 547
    Points
    24 547
    Par défaut
    Interrompre un traitement on sait faire, le plus dur c'est le faire repartir. ça je sais pas faire.

    Je serais quand même curieux de voir ton traitement.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 20
    Points : 14
    Points
    14
    Par défaut
    C'est gentil de te pencher sur la question...

    Mon traitement n'a strictement rien de particulier. Grosso modo il trafique un fichier excel. Mais c'est loooooong... Il y a des requêtes, des boucles, tout un tas de bazar...

    Je voudrais éviter de mettre des DoEvents un peu partout pour que l'écran se mette à jour... Je voudrais que ça se fasse tout seul !

    Tu dis savoir interrompre un traitement, tu fais comment (en deux ou trois mots) ?

  6. #6
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 017
    Points : 24 547
    Points
    24 547
    Par défaut
    Avec un Stop

    mais c'est définitif. Une fois stoppé on redémarre pas.

    Avec de l'automation je comprends mieux ton problème de raffraichissement. Tu es dans Excel et plus dans Access (tout en y étant toujours).

    Regarde le tuto sur le sujet peut-être qu'il y aura une info pour ce cas.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 20
    Points : 14
    Points
    14
    Par défaut
    Je ne connaissais pas Stop, merci de l'info !

    Je viens de reparcourir tout ce que j'ai pu au sujet de l'automation avec Excel sans trouver de piste...

    Tant pis, mon code va être tout moche avec des DoEvents partout (et en plus, le résultat n'est pas top...)

    Encore merci pour les idées...

Discussions similaires

  1. Affichage Sablier pendant un traitement de job
    Par Macao35 dans le forum Développement de jobs
    Réponses: 0
    Dernier message: 10/04/2012, 17h56
  2. [VB.NET] forcer l'affichage pendant un traitement
    Par lacsap49 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 16/06/2006, 18h26
  3. [formulaire] Rafraichissement d'une zone de liste
    Par decour dans le forum Access
    Réponses: 2
    Dernier message: 08/10/2005, 12h39
  4. Affichage périodique d'une fonction
    Par boobob dans le forum C
    Réponses: 16
    Dernier message: 08/12/2003, 16h06
  5. Rafraichissement de la fenetre pendant le traitement
    Par Bobx dans le forum Composants VCL
    Réponses: 5
    Dernier message: 20/02/2003, 15h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo