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

Access Discussion :

Comment faire une boucle ???


Sujet :

Access

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 62
    Points : 38
    Points
    38
    Par défaut Comment faire une boucle ???
    Bonsoir à tous,

    J'ai essayé de réaliser une boucle comme suit :

    Ce code fait parti d'une function située dans un module général !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    'Démarre la jauge de progression.
        Call acbInitMeter("Fusion vers Word en cours")
     
    ' Tant que le formulaire frmStatusMeter est ouvert alors
    While CurrentProject.AllForms("frmStatusMeter").isloaded  ' Boucle.
    'rien
    Wend   ' Quitte la boucle
     
        'Démarre Word à l'aide du modèle de fusion de données.
        Set wrdApp = New Word.Application
        Set doc = wrdApp.Documents.Add(strPath & conTemplate)
    Le résultat est que ma boucle tourne sans cesse et bloque mon apply.

    Call acbInitMeter renvoi à une function qui ouvre un formulaire avec une barre de progression. Lorsque ma barre est arrivée au bout ce formulaire, celui-ci se ferme. (ici pas de problème !)

    Ensuite :
    Je veux attendre que mon formulaire en question se ferme pour continuer les instructions de mon code.

    Sauf que ma boucle que j'utilise ici n'engendre rien ! Le curseur de ma souris reste en sablier et bloque mon application.

    Merci de votre aide.

  2. #2
    Membre du Club
    Inscrit en
    Avril 2005
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 56
    Points : 49
    Points
    49
    Par défaut
    Si jeu bien compris tu veux ouvrir un formulaire et "suspendre l'exécution du prog" tant que tu n'as pas récupérer l'info d'un autre formulaire...

  3. #3
    Membre du Club
    Inscrit en
    Avril 2005
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 56
    Points : 49
    Points
    49
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        'Affiche la fenétre de type d'HISTORIQUE
        While gbytChoixHistorique = 0
            Screen.MousePointer = 1
            DoCmd.OpenForm "Choix_Historique", , , , , acDialog
            DoEvents
        Wend
    J'ai eu un probléme similaire et j'ai mis ca en place, tu la place dans ton prog et lorsque tu arrive a ce code, et ouvre l'autre formulaire en modal, tant que l'on a pas effectuer ce qu'on a faire il tourne indéfiniment...

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 62
    Points : 38
    Points
    38
    Par défaut
    Salut deaqu1,

    Merci de ton aide !

    Mais mon souhait est d'ouvrir un formulaire appelé "frmStatusMeter" et de "suspendre l'exécution de ma function de fusion Word" tant que je n'ai pas fermer ce même formulaire que je viens d'ouvrir.

    Ce formulaire contient une barre de progression qui permet de visualiser l'attente de mon function "fusion Word".

    Si tu vois ce que je veux dire, peux-tu m'expliquer si ton code solutionnerait mon problème ?

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Tu crée une variable globale boolean que tu met à false lorsque tu ouvre ton formulaire frmStatusMeter

    Tu boucle tan que cette variable reste à false

    En fermant ton formulaire tu met ta variable à true
    Amicalement

  6. #6
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    si tu mettais un petit DoEvents dans ta boucle, juste histoire de redonner un peu la main au système de temps en temps ?

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 62
    Points : 38
    Points
    38
    Par défaut
    Bonjour,

    Merci à tous pour votre aide, ca fonctionne correctement maintenant

    Voici pour info ma boucle avec la variable "check" de DMboup mise sur ouverture et fermeture de mon formulaire et le DoEvents spécifié par Maxence :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        'Démarre la jauge de progression.
    Call acbInitMeter("Fusion vers Word en cours")
     
    ' Tant que le formulaire frmStatusMeter est ouvert alors
    Do While CurrentProject.AllForms("frmStatusMeter").isloaded  ' Boucle.
    check = True
    DoEvents
    Loop   ' Quitte la boucle
     
        'Démarre Word à l'aide du modèle de fusion de données.
        Set wrdApp = New Word.Application
        Set doc = wrdApp.Documents.Add(strPath & conTemplate)
    Merci et à bientôt

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Smarty] comment faire une boucle
    Par wkd dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 19/08/2009, 13h36
  2. Réponses: 2
    Dernier message: 06/04/2007, 13h31
  3. [VBA-E] Comment faire une boucle lorsqu'il y a des cellules vides
    Par Annick.w dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 01/02/2007, 22h39
  4. [AJAX] Comment faire une boucle XMLHttpRequest qui marche ?
    Par lancelot_13 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 19/01/2007, 12h00

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