IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

[AC - 2007] Shell et programme d'installation.


Sujet :

VBA Access

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2014
    Messages : 6
    Points : 6
    Points
    6
    Par défaut [AC - 2007] Shell et programme d'installation.
    Bonjour, suite à une évolution d'un outil à l'origine prévue pour un tout petit nombre de personne, et maintenant déployé sur une trentaine de poste, je souhaite me simplifier la vie en automatisant le déploiement de mises à jours.

    Ma base comporte un FrontEnd et un BackEnd, et je déploie le FrontEnd en local sur les machines des utilisateurs.
    J'ai une table version dans chacun des 2 fichiers, et lorsque je décide de déployer une mise à jour, j'incrémente la version dans le BackEnd, et si le FrontEnd n'a pas la bonne version il refuse de s'ouvrir et demande une mise à jour.

    Rien de bien transcendant. Là où je bloque, c'est que je souhaite donc qu'en cas de non correspondance, le programme d'installation situé sur le réseau (R:\) se lance automatiquement.

    Celui ci a été réalisé avec l'extension développeur d'Access 2007 et comporte le runtime d'Access, la base FrontEnd et un fichier d'icône.

    J'ai pensé avoir recours à la fonction SHELL() pour lancer automatiquement le programme d'installation, mais j'ai systématiquement l'erreur suivante :

    Nom : 547511erreur5.jpg
Affichages : 146
Taille : 16,7 Ko

    Voici mon code :

    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
    25
    Private Sub Maj_appli()
    Dim RetVal
    RetVal = Shell("R:\Applications\6eme_jour\setup.exe")
    End Sub
     
    Private Sub Form_open(Cancel As Integer)
     
    Dim version_access
    version_access = Access.Version
     
    If version_access <> "12.0" Then
        MsgBox "Une mise à jour est nécessaire et va être réalisée"
        Maj_appli
        DoCmd.CloseDatabase
    Else
        If Form.Comparatif.Value = "Incompatible" Then
            MsgBox "Votre client n'est pas à jour, une mise à jour va être effectuée"
            Maj_appli
            DoCmd.CloseDatabase
        Else
            'DoCmd.ShowToolbar "Ribbon", acToolbarNo
        End If
    End If
     
    End Sub
    Ce code est lancé à l'ouverture du formulaire d'accueil.

    J'ai réalisé les tests suivants.

    • En remplaçant le chemin de mon programme d'installation par le chemin de la calculatrice windows, le code fonctionne et lance la calculatrice.
    • En déplaçant le programme de la calculatrice (calc.exe) dans le même dossier que mon programme d'installation, le code fonctionne et lance la calculatrice (pas de problème avec le fait que R:\ soit un lecteur réseau donc)
    • En déplaçant le programme de la calculatrice dans le même dossier et en le renommant setup.exe, le code fonctionne et lance la calculatrice (le code va donc bien chercher le chemin complet et n'utilise pas de variable d'environnement ou autre)



    Je suppose donc que c'est la nature de mon programme d'installation qui ne revient pas à la fonction SHELL(). Il est souvent fait mention en parallèle de la fonction SHELL() de SHELLEXECUTE(), ou SHELLEXEC(). A première vue ces dernières servent surtout à ouvrir un fichier sans connaître le nom du programme associé, je ne vois pas trop comment l'appliquer à mon problème.
    De plus, ces 2 fonctions ne sont pas reconnues par VBA lorsque je tente de les utiliser.

    Je bloque depuis 2 jours sur ce petit détail et je commence a sérieusement m'embourber et tourner en rond.

    Merci d'avance pour votre aide.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 801
    Points : 1 107
    Points
    1 107
    Par défaut
    Bonjour,
    As-tu essayé cette solution ?
    L'informatique fait gagner beaucoup de temps. A condition d'en avoir beaucoup devant soi !!!

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2014
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Merci pour votre aide.

    J'ai parcouru le fil et effectivement il y a du mieux, même si cela ne fonctionne toujours pas.

    Avec ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Maj_appli()
    Dim RetVal
    RetVal = Shell("CMD R:\Applications\6eme_jour\setup.exe")
    End Sub
    Je n'ai plus de message d'erreur, CMD s'ouvre mais ne semble pas passer le paramètre. Il s'ouvre comme si je l'appelais de la fenêtre Exécuter en tapant CMD.EXE puis rien.

    J'ai testé avec divers paramètre mais aucune différence.

    En tapant simplement le chemin d'accès de mon fichier dans CMD, le programme se lance.

  4. #4
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 801
    Points : 1 107
    Points
    1 107
    Par défaut
    Je viens d'essayer ça et apparemment ça marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RetVal = Shell("CMD /C R:\Applications\6eme_jour\setup.exe")
    L'informatique fait gagner beaucoup de temps. A condition d'en avoir beaucoup devant soi !!!

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2014
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Merci le programme se lance enfin.

    Par acquis de conscience par contre, je ne vois pas en quoi le fait de terminer cmd sans attendre la fin de l'exécution à débloqué la situation. Une idée ?

  6. #6
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 801
    Points : 1 107
    Points
    1 107
    Par défaut
    Personnellement aucune idée Ptet que qqu'un d'autre pourra t'apporter la réponse
    Penses à placer ton topic en résolu si ça a résolu ton problème
    L'informatique fait gagner beaucoup de temps. A condition d'en avoir beaucoup devant soi !!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [TP7] Programme d'installation
    Par Eric Sigoillot dans le forum Turbo Pascal
    Réponses: 11
    Dernier message: 22/04/2006, 11h27
  2. Recherche d'un programme d'installation
    Par jmjmjm dans le forum Outils
    Réponses: 2
    Dernier message: 17/11/2005, 09h15
  3. programme d'installation automatique
    Par csa09966 dans le forum Autres Logiciels
    Réponses: 5
    Dernier message: 19/10/2005, 16h43
  4. Réponses: 8
    Dernier message: 22/11/2004, 12h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo