Progression.bas 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. Attribute VB_GlobalNameSpace = False
  2. Attribute VB_Creatable = False
  3. Attribute VB_PredeclaredId = False
  4. Attribute VB_Exposed = False
  5. Option Compare Database
  6. Private progTotale, progActuelle As Double
  7. Private fermetureAuto As Boolean
  8. 'nécessite le formulaire zfrmProgression
  9. Public Sub Afficher(titre As String, Optional msg As String = "", Optional vProgTotale As Double = 1, Optional vfermetureAuto As Boolean = True)
  10. On Error GoTo err
  11. fermetureAuto = vfermetureAuto
  12. If Not formExiste("zfrmProgression") Then GoTo errFrm
  13. progTotale = IIf(vProgTotale > 0, vProgTotale, 1)
  14. DoCmd.OpenForm "zfrmProgression", acNormal
  15. With forms![zfrmProgression]
  16. .txt_titre.Caption = titre
  17. .txt_msg.Visible = (Len(msg) > 0)
  18. If Len(msg) > 0 Then .txt_msg.Caption = msg
  19. .prog.Width = 1
  20. .prog.BackColor = RGB(228, 108, 10)
  21. End With
  22. DoCmd.Hourglass True
  23. fin:
  24. Exit Sub
  25. err:
  26. DoCmd.Hourglass False
  27. MsgBox "Erreur: impossible d'afficher le formulaire de progression"
  28. Debug.Print err.Description
  29. Call fermer
  30. GoTo fin
  31. errFrm:
  32. MsgBox "Erreur: le formulaire zfrmProgression est nécessaire à l'affichage de la progression"
  33. Debug.Print err.Description
  34. GoTo fin
  35. End Sub
  36. Public Sub maj(ByVal msg As String, ByVal prog As Double)
  37. Dim taux As Double
  38. If Not formExiste("zfrmProgression") Then GoTo errFrm
  39. If prog >= 0 Then
  40. If prog <= progTotale Then
  41. progActuelle = prog
  42. Else
  43. progActuelle = progTotale
  44. End If
  45. Else
  46. progActuelle = 0
  47. End If
  48. With forms![zfrmProgression]
  49. .SetFocus
  50. .txt_msg.Visible = (Len(msg) > 0)
  51. If Len(msg) > 0 Then .txt_msg.Caption = msg
  52. taux = progActuelle / progTotale
  53. .prog.Width = 5137 * taux
  54. If taux = 1 Then
  55. If fermertureAuto = True Then GoTo fermeture
  56. DoCmd.Hourglass False
  57. .prog.BackColor = RGB(152, 72, 7)
  58. .boutonOK.Visible = True
  59. .SetFocus
  60. End If
  61. End With
  62. fin:
  63. Exit Sub
  64. err:
  65. DoCmd.Hourglass False
  66. MsgBox "Erreur: impossible de mettre à jour le formulaire de progression"
  67. Debug.Print err.Description
  68. GoTo fin
  69. errFrm:
  70. DoCmd.Hourglass False
  71. GoTo fin
  72. fermeture:
  73. Call fermer
  74. GoTo fin
  75. End Sub
  76. Public Sub fermer()
  77. On Error GoTo err
  78. DoCmd.Hourglass False
  79. DoCmd.Close acForm, "zfrmProgression"
  80. fin:
  81. Exit Sub
  82. err:
  83. DoCmd.Hourglass False
  84. MsgBox "Erreur: impossible de fermer le formulaire de progression"
  85. Debug.Print err.Description
  86. GoTo fin
  87. End Sub