Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1331 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [Access] barre de progression

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Access] barre de progression

n°353741
Grek
Posté le 05-04-2003 à 19:18:58  profilanswer
 

Bonjour,
 
Dans le cadres de mon projet Access, je dois parfois executer des macros, ou
des procedures, qui prennent un certain temps à s'executer.
Au lieu de laisser l'utilisateur devant le formulaire statique, j'aimerais
bien qu'une barre de progression (si possible personnalisable, du style un
texte qui apparait au fur et à mesure de la progression) apparaisset au
milieu de l'ecran pendant la durée d'exécution de la macro/procedure.
On m'a dit que Access 2002 permettait ça assez facilement mais
malheureusement je suis sous Access 97...
 
Merci d'avance pour votre aide
 
Gregory
 

mood
Publicité
Posté le 05-04-2003 à 19:18:58  profilanswer
 

n°353791
_deskira_
Posté le 05-04-2003 à 22:32:08  profilanswer
 

ca se fait aussi
j ai le code quelque part, j ai bossé sur un truc similaire l année derniere en stage
je te retrouve ca.
 
edit : voila
 
ds un formulaire, un label nommé TextWait et un objet OLE nommé ProgressBar, Application OLE ProgCtrl, classe d objet COMCTL.ProgCtrl.1
 
code du formulaire:
 

Code :
  1. Private Sub Form_Load()
  2. On Error Resume Next
  3.   ' pour le texte a mettre
  4.   Me.TextWait.Caption = Me.OpenArgs
  5. End Sub


 
ds un module nommé modProgressBar:

Code :
  1. Sub create_ProgressBar(Msg As String, Max As Integer)
  2. On Error Resume Next
  3.   If Max = 0 Then
  4.     Max = 10
  5.   End If
  6.   DoCmd.OpenForm "frm_ProgressBar",,,,, acDialog, Msg
  7.   With Forms![frm_ProgressBar]
  8.     .Visible = True
  9.     .ProgressBar.Max = Max
  10.     .ProgressBar.Value = 0
  11.     .Repaint
  12.   End With
  13. End Sub
  14. --------------------------------------------------------
  15. Sub Progress_ProgressBar(step As Integer)
  16. On Error Resume Next
  17.   If Forms![frm_ProgressBAr].ProgressBar.Value + step > Forms![frm_ProgressBar].ProgressBar.Max Then
  18.     step = Forms![frm_ProgressBar].ProgressBar.Max - Forms![frm_ProgressBar].ProgressBar.Value
  19.   End If
  20.   Forms![frm_ProgressBar].ProgressBar.Value = Forms![frm_ProgressBar].ProgressBar.Value + step
  21.   If Forms![frm_ProgressBar].ProgressBar.Value = Forms![frm_ProgressBar].ProgressBar.Max Then
  22.     DoCmd.Close acForm, "frm_ProgressBar"
  23.   End If
  24. End Sub


Tu y fais appel avec :
modProgressBar.create_ProgressBar _texte_a_entrer_, _max_de_la_barre_
et t incrementes avec :
modProgressBar.Progress_ProgressBar _step_
 
arrivé au max le formulaire se ferme tout seul, a toi d ajuster les step pour que ce soit nickel  :D  
 
 :hello:


Message édité par _deskira_ le 05-04-2003 à 23:06:08
n°353892
Grek
Posté le 06-04-2003 à 11:41:50  profilanswer
 

Hello,
Un grand merci pour ta reponse !
Le prob c'est que je bosse avec une version d'access 97 et je crois que l'activex progres bar est soit absent soit très limité. Bref j'aimerai bien m'en passer...
 
Par contre j'ai trouvé ça sur ce site web http://mypage.bluewin.ch/w.stucki/ [...] rogression mais je ne vois pas comment l'intégrer dans un formulaire pour qu'elle ne s'affiche que pendant l'exécution d'une macro ou d'un module,...)
Pourrais-tu m'aider s'il te plait ?
 
Encore merci
A+
 
Gregory
 
---------------
 
Créer sa propre barre de progression
 
Au lieu d'utiliser la barre de progression standard qui s'affiche dans la barre d'état au bas de la fenêtre Access ou de recourir à un contrôle ActiveX coûteux en place et en puissance processeur, on peut créer sa propre barre de progression. Elle pourra être placée sur n'importe quel formulaire à l'endroit désiré et même en plusieurs exemplaires. La marche à suivre est indiquée ci-après.
 
 
 
Sur un formulaire vierge créez un contrôle étiquette. On le remplit avec n'importe quel signe. Sa largeur sera fixée à 7,6 cm et sa hauteur à 0,5 cm. La couleur de fond sera rouge et son apparence sera 3D enfoncé.
 
 
Créez un contrôle zone de texte, supprimez son étiquette et donnez lui une hauteur de 0,42 cm. Réglez sa couleur de fond sur bleu marin et la couleur du texte sur jaune. Réglez sa propriété Aligner texte sur centre et son apparence sur En Relief. Superposez-le sur le contrôle étiquette à gauche et donnez-lui une largeur de 0,051 cm.
 
 
Ajoutez un bouton de commande et la procédure Sur clic suivante:
 
 
Private Sub cmdBarreProgression_Click()
 
Dim intX As Integer, intZ As Integer
For intX = 1 To 100
 
 
' vu que la boucle s'exécute rapidement on ajoute une pause
For intZ = 1 To 60
 
DoEvents
Next intZ
' Mise à jour de la barre de progression. On donne une valeur entre 1 et intX
Me!txtProgression = intX & "%"
Me!txtProgression.Width = 18 * intX
Next intX
 
' Message final facultatif
Me!txtProgression = "Opération terminée"
End Sub

n°353897
_deskira_
Posté le 06-04-2003 à 12:02:40  profilanswer
 

Le code que je t ai indiqué fonctionne tres bien ds Access 97, c est ce que j ai utilisé pendant mon stage.
 
ca fonctionne nickel avec win2k et xp, pour 98 je crois qu il faut rajouter un fichier ds windows/system pour qu il prenne en compte la progress bar sinon ca merde
 
pour le code que t as trouvé, tu peux tres bien passer la textbox en invisible qd tu travailles normalement avec ton formulaire, puis le passer en visible qd il calcule et le remettre invisible ensuite.
le 'DoEvents' j avais jamais vu par contre, je sais pas a koi ca sert.
 
moi perso je prefere ma solution, a toi de voir  :hello:

n°367482
Grek
Posté le 20-04-2003 à 12:38:48  profilanswer
 

Merci pour ton dernier post et désolé pour la reponse tardive (j'avais oublier que j'avais posté ici :sarcastic: )
A+
 
Greg


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [Access] barre de progression

 

Sujets relatifs
[activeX pour access] [mscomct2.ocx] comment on l'isntalle ?[RESOLU] [Access] Tri avec un bouton dans un formulaire.
Comparatif MySQL <--> AccessComment détecter une modification sur un formulaire access
[ACCESS] Importer dans une base les données de plusieurs bases AccessRenommer une table sous Access
[access] trouver le repertoire courant [solution inside]Code vb pour changer le. en , dans Access
[ACCESS] Transférer ds une Base principale les données d'autres Bases[SQL- ACCESS] A l'aide !!!
Plus de sujets relatifs à : [Access] barre de progression


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR