Bonjour,
J'essaie d'automatiser la mise à jour de mon application.
Je m'explique lorsque l’utilisateur ouvre la base, je vérifie qu'il est en possession de la dernière version.
Si ce n'est pas le cas j'ouvre l'application "transfert" qui va en gros copier la bonne version et la coller dans l'ordinateur de l'utilisateur.
J'ai 2 codes VBA, un sur l'application principale qui vérifie la version et qui ouvre l'autre application :
Et celui de l'application transfert logiciel qui va fermer l'application principale en cours et qui va procéder au copier/coller puis rouvrir l'application principale mise à jour
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 Private Sub Form_Load() 'verifie la version Dim version_log As String Dim version As String version_log = Nz(DLookup("[version]", "version_logiciel", "[N°]= 1"), 0) version = Nz(DLookup("[version]", "version", "[N°]= 1"), 0) If version <> version_log Then 'ouvre le fichier transfert Static ac As Access.Application: Set ac = New Access.Application ac.Visible = True ac.OpenCurrentDatabase ("Y:\Logiciel\" & "transfert_logiciel.accdb") DoCmd.SetWarnings True End If End Sub
L'inconvénient c'est que ça ne marche pas, l'appli transfert s'ouvre bien mais elle ouvre une autre application principale et je me trouve avec 3 appli ouvertes et tout est bloqué.
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 Private Sub Form_Load() Dim ObjAccess As Object Dim Bd As Database Set ObjAccess = GetObject("C:\logiciel\principale.accdb") ObjAccess.Quit Set ObjAccess = Nothing MsgBox ("Votre version du logiciel n'est pas la bonne, il va se mettre à jour") 'copy le fichier FileCopy "Y:\Logiciel\principale.accdb", "C:\logiciel\principale.accdb" 'ouvre le fichier Static ac As Access.Application: Set ac = New Access.Application ac.Visible = True ac.OpenCurrentDatabase ("C:\logiciel\" & "principale.accdb") 'remet les messages d'erreurs DoCmd.SetWarnings True 'ferme le fichier transfert Application.Quit acQuitSaveAll End Sub
Si je lance le code VBA du transfert quand l'application principale est déjà ouverte ça fonctionne mais si je pars de 0 et que tout est fermé et que je lance l'appli principale qui ouvre le fichier transfert ça bug.
Pouvez vous m'aider afin de déceler le problème de code.
Merci par avance.
Bonne journée
Sebing
Partager