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

Runtime Discussion :

Mise à jour automatique d'une application Access [AC-2016]


Sujet :

Runtime

  1. #1
    Membre confirmé
    Avatar de vavavoum74
    Homme Profil pro
    Responsable magasin
    Inscrit en
    Mars 2018
    Messages
    356
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable magasin

    Informations forums :
    Inscription : Mars 2018
    Messages : 356
    Points : 572
    Points
    572
    Par défaut Mise à jour automatique d'une application Access
    Bonjour, je débute encore
    J'ai fait une application Access composée:
    de l'"application" (ou encore frontale je crois) en .accdb installée sur différents postes, tous avec access dessus (versions 2010 à 2016 selon les machines)
    d'une base de donnée (ou encore dorsale) en .accbd qui est située sur un NAS en réseau local
    L'ensemble fonctionne et donne satisfaction.
    La frontale contient tous les formulaires, requetes, etats ...
    La dorsale seulement les tables.

    Je souhaiterais qu'à l'ouverture de l'application il y aie un test vérifiant la version de la frontale, et s'il éxiste sur un répertoire donné du nas une version plus récente de la frontale, cette dernière s'installe automatiquement sur le PC "client".

    Je ne sais pas trop par quel bout le prendre et suis ouvert à vos suggestions avisées.

    Merci d'avance pour votre aide

  2. #2
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 108
    Points : 5 231
    Points
    5 231
    Par défaut
    Bonjour,

    J'ai écrit pour cela un petit "lanceur d'application" qui compare les versions et met à jour la frontale si besoin
    Si l'appli s'appelle planet le lanceur doit être nommé planet_c. Il copie sur c:\planet et va chercher sur le répertoire indiqué en complément dans le raccourci :
    "C:\Program Files\Microsoft Office\Office\MSACCESS.EXE" "C:\temp\planet_c.mde" /cmd "\\srv-ad\planet\"

    C'est un mdb mais il suffit de le compiler et le renommer en .accde pour que ça fonctionne aussi avec cette extension

    C'est gratuit mais je n'assure d'autant moins le SAV que j'ai fait ça il y a 7 ans et jamais remis mon nez dedans depuis !
    Fichiers attachés Fichiers attachés

  3. #3
    Membre confirmé
    Avatar de vavavoum74
    Homme Profil pro
    Responsable magasin
    Inscrit en
    Mars 2018
    Messages
    356
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable magasin

    Informations forums :
    Inscription : Mars 2018
    Messages : 356
    Points : 572
    Points
    572
    Par défaut
    Merci beaucoup à toi.
    Je vais me plonger là dedans.
    Il faut mettre ce code (retravaillé bien sûr) sur le formulaire d'ouverture de la frontale?

  4. #4
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 108
    Points : 5 231
    Points
    5 231
    Par défaut
    Au lieu d'ouvrir la frontale on ouvre ce code qui ouvre la frontale après l'avoir mise à jour si besoin

  5. #5
    Membre confirmé
    Avatar de vavavoum74
    Homme Profil pro
    Responsable magasin
    Inscrit en
    Mars 2018
    Messages
    356
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable magasin

    Informations forums :
    Inscription : Mars 2018
    Messages : 356
    Points : 572
    Points
    572
    Par défaut
    Ok, merci.
    Je vais voir si je m'en sort avec ça..

  6. #6
    Membre confirmé
    Avatar de vavavoum74
    Homme Profil pro
    Responsable magasin
    Inscrit en
    Mars 2018
    Messages
    356
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable magasin

    Informations forums :
    Inscription : Mars 2018
    Messages : 356
    Points : 572
    Points
    572
    Par défaut
    Il m'est venu une idée...

    Mettre une table dans ma dorsale nommée VerRLS avec dedans simplement le n° de version "cible"
    Mettre une table dans ma frontale nommée VerPC avec dedans simplement le n° de version sur le PC client.
    Comparer les deux valeurs à l'ouverture de l'application.
    Si VerRLS>VerPC éxécuter un code qui:
    ferme l'application et lance une petite application qui va copier du nas vers le PC client l'application nouvelle version qui est prête à être déployée et écrasera l'ancienne version
    puis réouvre l'application qui sera ainsi à jour.

    Cela vous semble cohérent?
    une idée du code qui permettrait de faire ceci?

  7. #7
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2013
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Services à domicile

    Informations forums :
    Inscription : Décembre 2013
    Messages : 150
    Points : 98
    Points
    98
    Par défaut
    Bonjour,

    c'est tout à fait l'idée que j'ai eu (pas encore mis en place).
    J'aurais une table locale (Version) avec un NumAuto et un libellé indiquant la version.

    NumVersion Libellé
    1 V1.0
    2 V1.1
    3 V1.2
    4 V2.0

    Cette information (1, 2, 3, 4) est mémorisée:
    - dans une table locale à l'application (et on peut même l'afficher sur l'écran de départ)
    - dans une table de la dorsale.
    Au lancement de l'application, on compare la valeur de ces 2 tables. Si la version est différente, on propose la mise à jour.

  8. #8
    Membre confirmé
    Avatar de vavavoum74
    Homme Profil pro
    Responsable magasin
    Inscrit en
    Mars 2018
    Messages
    356
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable magasin

    Informations forums :
    Inscription : Mars 2018
    Messages : 356
    Points : 572
    Points
    572
    Par défaut
    je ne vois pas l'interet de conserver l'historique des version dans la table, plutot une valeur unique non?
    tu peux m'aider sur le code permettant de comparer les deux valeurs? (je suis une quiche en vba...)

  9. #9
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2013
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Services à domicile

    Informations forums :
    Inscription : Décembre 2013
    Messages : 150
    Points : 98
    Points
    98
    Par défaut
    Citation Envoyé par vavavoum74 Voir le message
    je ne vois pas l'interet de conserver l'historique des version dans la table, plutot une valeur unique non?
    tu peux m'aider sur le code permettant de comparer les deux valeurs? (je suis une quiche en vba...)
    L'avantage d'une table, c'est la valeur unique du NumAuto pour la comparaison.
    Je stoque cette valeur:
    - dans une table "ConstanteLocale" contenant 1 seul enregistrement on mémorise ici la valeur de la version actuelle du logiciel d'application. Le champ s'appelle "NumVersion"
    - dans une table distante "Constante" contenant 1 seul enregistrement on mémorise ici la version courante de l'application. Cette table est située sur la dorsale (sur le réseau accessible à tous les utilisateurs). Le champ s'appelle "NumVersion"

    Et pour la comparaison:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if dlookup ("[NumVersion]","ConstanteLocale") <> dlookup ("[NumVersion]","Constante") then
    end if

  10. #10
    Membre confirmé
    Avatar de vavavoum74
    Homme Profil pro
    Responsable magasin
    Inscrit en
    Mars 2018
    Messages
    356
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable magasin

    Informations forums :
    Inscription : Mars 2018
    Messages : 356
    Points : 572
    Points
    572
    Par défaut
    J'ai crée les 2 tables, fait le code test sur ton modèle, trouvé l'instruction qui ferme l'appli, me restera à trouver comment lancer le .bat que je placerai entre la ligne 5 et 6 du code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Form_Load()
     
     
    If DLookup("[NumVersionLoc]", "VersionLocale") <> DLookup("[NumVersionRef]", "VersionReference") Then
     MsgBox ("Mise à jour à faire")
     Application.Quit
    Else
    MsgBox ("Programme à jour")
    End If
     
     
    End Sub
    Cela fonctionne parfaitement, je te remercie beaucoup.

    Par contre je lutte avec le .bat
    J'ai fait:

    sachant que P: est un lecteur réseau sur le PC client


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    robocopy \\NASDE91C7\Public\Logiciels\SuiviSAV.accbd C:\SuiviSAV\
    start "essai" C:\SuiviSAV\SuiviSAV.accdb /s
    Le dossier public sur le NAS est en "libre acces"'.. je patauge..
    Dans les deux cas il ne trouve pas le fichier à copier qui est pourtant bien à la bonne place...

  11. #11
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2013
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Services à domicile

    Informations forums :
    Inscription : Décembre 2013
    Messages : 150
    Points : 98
    Points
    98
    Par défaut
    Bonjour,

    pour exécuter une commande shell ou un lancement de programme, j'utilise plutôt la commande "shell"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            Ret = Shell(CommandePourPdftk)
             If Ret = 0 Then
                MsgBox "erreur de shell"
             End If

  12. #12
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    Bonjour,

    Citation Envoyé par vavavoum74 Voir le message
    Dans les deux cas il ne trouve pas le fichier à copier qui est pourtant bien à la bonne place...
    Pour ce genre de cas, copiez l'adresse du fichier dans l'explorateur windows.
    Cela permet de tout de suite identifier si le chemin est bien reconnu par windows avant d'analyser le code pour rien.

    \\NASDE91C7\Public\Logiciels\SuiviSAV.accbd
    L'extension est sans doute incorrecte dans le script de copie.

  13. #13
    Membre confirmé
    Avatar de vavavoum74
    Homme Profil pro
    Responsable magasin
    Inscrit en
    Mars 2018
    Messages
    356
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable magasin

    Informations forums :
    Inscription : Mars 2018
    Messages : 356
    Points : 572
    Points
    572
    Par défaut
    Merci à tous les deux, cela fonctionne maintenant.
    Me reste plus qu'à fignoler la chose (boites de dialogue etc...)

    Je met résolu

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 16/12/2010, 16h12
  2. Réponses: 7
    Dernier message: 16/06/2007, 12h03
  3. Réponses: 4
    Dernier message: 09/03/2007, 19h19
  4. Réponses: 5
    Dernier message: 11/05/2006, 21h39
  5. Mise à jour automatique d'une table access via un .xls
    Par infratunes dans le forum Access
    Réponses: 4
    Dernier message: 05/04/2006, 18h33

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