Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/08/2011, 14h06   #1
Invité de passage
 
Homme
Inscription : août 2011
Messages : 2
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : août 2011
Messages : 2
Points : 0
Points : 0
Par défaut afficher progress bar meme pendant l'execution de requete ACCESS

Bonjour à tous,

j'avais repondu sur un sujet existant mais la problématique n'étant pas exactement la même, il vaut peut être mieux en créer un autre...

je consulte ce site depuis quelques mois assez régulièrement et j'ai pu bien progresser grâce à toutes les explications qu'on y trouve. Merci à tous! Toutefois je me retrouve face a un problème dont je n'ai trouvé la solution nulle part concernant la progressbar.
Le voici :

J'ai une boucle dans laquelle j'incrémente la valeur de ma progressbar avec SysCmd(acSysCmdInitMeter,...) et SysCmd(acSysCmdUpdateMeter,...).
Jusque là tout fonctionne très bien.

Le problème est qu'au sein de la boucle, je fais appel à un certain nombre de requêtes et que pendant le traitement des requêtes, la progressbar de chaque requête vient s'afficher et supprime les infos que je tentais d'afficher dans ma status bar. Comme le temps de traitement des requêtes est bien plus important que le reste, en gros je ne vois jamais l'info concernant ma progression globale (mais en mode pas a pas je le vois très bien s'afficher à chaque étape).

Pour résumer :

Code :
1
2
3
4
5
6
7
8
9
While (....)
SysCmd(acSysCmdInitMeter,traitement, total)
SysCmd(acSysCmdUpdateMeter,compteur)
 
requete
requete
requete
...
Wend
j'espère avoir été clair et trouver une réponse ici.
Remi42 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2011, 15h47   #2
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 939
Points : 6 278
Points : 6 278
Bonjour,

Si tu exécutes tes requêtes avec DAO, il n'y a pas d'indicateur de progression pour les requêtes.
Code :
1
2
3
4
Dim db As DAO.Database
 
Set db = CurrentDb
db.Execute "Nom de la requête"
Tu peux aussi utiliser, dans un formulaire, un contrôle activeX "Microsoft ProgressBar Control" au lieu de la barre de progression Access.
Comment utiliser l'objet Microsoft Progress Bar ?
Un exemple dans Excel : DebuterInsertionProgressBarUSF.zip

A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2011, 15h19   #3
Invité de passage
 
Homme
Inscription : août 2011
Messages : 2
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : août 2011
Messages : 2
Points : 0
Points : 0
OK Merci c'est intéressant.

J'ai par contre finalement utilisé une autre méthode suggérée par un collègue en créant une feuille contenant une barre que je fais afficher et dont je règle la largeur en fonction de la progression de mon traitement.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
Function afficher_barre()
    'Initialisation de la barre de progression
    F_BarreAttente.Show 'Barre de progression
End Function
Function barre_progression(param_1 As Variant, param_2 As Variant, param_3 As String)
    F_BarreAttente.Caption = param_3 & " : " & param_1 & "/" & param_2 'evolution de la progression (lignes parcourues vs lignes totales)
    F_BarreAttente.Label1.Width = param_1 / param_2 * 400 'evolution sur la barre de progression (Taille 400 px)
    DoEvents
End Function
Function fin_barre()
   'Libération mémoire
    Unload F_BarreAttente
End Function
ca fait son petit effet!

Merci pour l'aide en tous cas
Cordialement
Remi42 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h56.


 
 
 
 
Partenaires

Hébergement Web