AT_VersionManager.bas 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. Option Compare Database
  2. ' ** Access Toolbox Module **
  3. ' on 2017-02-28,
  4. ' @author: Olivier Massot
  5. ' V 1.0
  6. ' Version manager
  7. Public Function local_version() As Date
  8. local_version = DFirst("val", "[t_config]", "[parameter]='version_date'")
  9. End Function
  10. Public Function last_version() As Date
  11. last_version = DMax("version_date", "[zt_versions]", "")
  12. End Function
  13. Public Function up_to_date() As Boolean
  14. up_to_date = local_version() >= last_version()
  15. End Function
  16. Public Function installer_path() As String
  17. installer_path = DFirst("val", "[t_config]", "[parameter]='installer_path'")
  18. End Function
  19. Public Sub send_update_mail()
  20. ' ! Requires 'AT_Mail' module
  21. 'On Error GoTo err
  22. Dim version_name As String
  23. Dim installer_p As String
  24. Dim modif As String
  25. Dim subject As String
  26. Dim str As String
  27. str = " ATTENTION:" & vbNewLine & _
  28. vbNewLine & _
  29. " Votre version de l'application n'est pas à jour. " & vbNewLine & _
  30. "Voulez-vous qu'un mail de mise à jour vous soit envoyé?"
  31. If MsgBox(str, vbYesNo) = vbNo Then Exit Sub
  32. sujet = "AUTOMATIQUE - Mise à jour " & CurrentDb.Properties("AppTitle")
  33. str = "<html>" & vbCrLf & _
  34. "<body>" & vbCrLf & _
  35. "Bonjour, <br><br>" & vbCrLf
  36. 'version:
  37. version_name = Nz(DFirst("version_name", "zt_versions", "[version_date] Like '" & last_version() & "'"), "")
  38. If Len(version_name) > 0 Then
  39. version_name = " en version: <b>" & version_name & " (" & last_version() & ")</b><br>"
  40. Else
  41. version_name = " dans une nouvelle version."
  42. End If
  43. str = str & " L'application <b>" & CurrentDb.Properties("AppTitle") & "</b> est disponible " & version_name & vbCrLf
  44. 'content
  45. version_content = Nz(DLookup("description", "zt_versions", "[version_date] Like '" & last_version() & "'"), "")
  46. If Len(version_content) > 0 Then
  47. str = str & _
  48. " Les modifications suivantes ont été apportées: <br><br>" & vbCrLf & _
  49. " " & version_content & "<br><br>" & vbCrLf
  50. End If
  51. 'fin du message
  52. installer_p = installer_path()
  53. If Len(installer_p) > 0 And Dir(installer_p) <> "" Then
  54. installer_p = "<a href='" & installer_path() & "'>ici</a><br>"
  55. Else
  56. installer_p = " <b>(lien invalide)</b>"
  57. End If
  58. str = str & _
  59. " Pour mettre à jour, cliquez " & installer_p & "<br>" & vbCrLf & _
  60. "Bonne journée!" & vbCrLf & _
  61. "Cordialement," & vbCrLf & _
  62. "</body>" & vbCrLf & _
  63. "</html>"
  64. Call send_mail(sujet, str, current_account(), True)
  65. MsgBox "Le mail a été envoyé, vous devriez le recevoir d'ici quelques instants."
  66. Exit Sub
  67. err:
  68. MsgBox "Erreur: Il semble que votre application ne soit pas à jour, et impossible d'envoyer le mail de mise à jour, veuillez contacter un administrateur"
  69. End Sub