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

IHM Discussion :

Formulaire attente avec progressbar


Sujet :

IHM

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    250
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 250
    Points : 93
    Points
    93
    Par défaut Formulaire attente avec progressbar
    Bonjour à tous,

    Grace à Arkam46 et son article, j'ai pu creer un formulaire d'attente avec une barre de progression (merci encore c'est super)
    Maintenant je voudrais l'affecter à un bouton de controle qui m'affiche les doublons de ma table dans une liste déroulante.

    voici le code d'arkam46

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    Private Sub Commande9_Click()
    Dim str As String
    Dim lCptIteration1 As Long
    Dim lCptIteration2 As Long
    Dim lString As String
    Dim lPercent As Single
    Const lNbIterations As Long = 10000
    On Error GoTo Gestion_Erreurs
    ' Ouverture du formulaire d'attente
    DoCmd.OpenForm "FormAttente"
    Forms("FormAttente").lblInfo.Caption = "Veuillez patienter durant le traitement ... "
    Forms("FormAttente").lblProgressBar.Width = 0
    ' Nécessaire pour redonner la main à windows le temps de traiter les messages dans la pile
    DoEvents
    ' Boucle de traitement
    For lCptIteration1 = 1 To lNbIterations
        For lCptIteration2 = 1 To 1000
            lString = Chr((lCptIteration1 + lCptIteration2) Mod 256)
        Next
        ' Toutes les 500 itérations
        If lCptIteration1 Mod 500 = 0 Then
            ' Calcul du pourcentage d'avancement
            lPercent = lCptIteration1 / lNbIterations
            ' Met à jour l'étiquette d'avancement
            Forms("FormAttente").lblProgress.Caption = "Traitement en cours ... " & Format(lPercent, "00%")
            ' Met à jour la barre de progression
            Forms("FormAttente").lblProgressBar.Width = Forms("FormAttente").lblProgressBack.Width * lPercent
            ' Repeint le formulaire
            Forms("FormAttente").Repaint
        End If
        ' Evite que l'application ne soit figée
        DoEvents
    Next
    ' Fermeture du formulaire d'attente
    DoCmd.Close acForm, "FormAttente"
     
    Exit Sub
    Gestion_Erreurs:
        MsgBox "Erreur lors du traitement, n° " & err.Number & ", " & err.Description, vbOKOnly
        End Sub
    Voici mon code de traitement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    str = "SELECT DISTINCT * FROM   T_essai T1 WHERE EXISTS (SELECT * FROM Trame T2  WHERE   T1.auto = T2.auto )ORDER BY T1.NOM"
     
    Me.Liste3.RowSource = str
    Me.Liste3.Requery
    Maintenant je ne sais pas où mettre mon code de traitement pourqu'il exécute pendant l'avancement de la progressbar.
    Merci d'avance pour votre aide.
    Mamanhou

  2. #2
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 040
    Points
    16 040
    Par défaut
    Bonjour,

    Tu peux utiliser le formulaire de progression uniquement si tu fais un traitement en boucle.

    Avec le code que tu veux utiliser, tu n'obtiendras aucun résultat tangible. Le résultat sera passé à ta variable en une fois, et il n'est pas possible de prévoir le temps de traitement.

    Pour le reste, je ne suis de toute façon pas certains que la durée d'une recherche de doublons soit si longue qu'elle nécessite l'utilisation d'un tel formulaire de progression.

    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    250
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 250
    Points : 93
    Points
    93
    Par défaut
    quelle déception....

    en fait grace à mon code de traitement je trouve les enregistrements identiques dans la table essai et Trame pour les afficher dans la liste3.

    Suivant le nombre d'enregistrements de ma table trame qui varie de (1 à 800 enregistrements) et ma table essai qui en compte plus de 35000, le temps de traitement est d'environ 1 mn et parfois plus.

    C'est pourquoi je voulais mettre une progressbar et le formulaire attente de Arkam 46 me parraissait correspondre.

    c'est dommage, y a til un autre moyen pour générer une progressbar ?

    Merci d'avance

  4. #4
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut


    Comme te le disais Domi2 (), la progressbar s'utilise dans une boucle. Dans ton cas, comme tu utilises une requête, le traitement se fait d'un bloc même si en arrière plan la requête visite tous les enregistrements.

    Si tu veux utiliser une progressbar, il te faudra faire un traitement Ligne par ligne en faisant des comparaisons (aucun intérêt )
    Jeannot

    Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., Sources VBA

    Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre

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

Discussions similaires

  1. [Formulaire] Bouton avec image
    Par Mister Nono dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 02/11/2005, 16h16
  2. [AJAX] Formulaire prépopuler avec du ajax dans la page
    Par shwin dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 31/10/2005, 15h37
  3. Formulaires : problème avec les slashes et les quotes
    Par GarGamel55 dans le forum Langage
    Réponses: 1
    Dernier message: 12/10/2005, 15h59
  4. Pb de formulaire Post avec javascript
    Par critok dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 28/09/2005, 15h31
  5. Copier fichier avec progressbar
    Par marcus333 dans le forum Composants VCL
    Réponses: 7
    Dernier message: 13/09/2005, 20h55

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