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 :

Déploiement sur postes clients [AC-2013]


Sujet :

Runtime

  1. #1
    Membre habitué
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2015
    Messages
    402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Février 2015
    Messages : 402
    Points : 153
    Points
    153
    Par défaut Déploiement sur postes clients
    Bonjour,

    Je souhaite déployer mon (laborieux) travail sur des postes clients.
    Par chance chaque poste doit disposer de sa propre base (pas de partage ou base commune).
    Pour assurer la maintenance de mes formulaires, je souhaite évidemment séparer la base des formulaires ...

    J'ai vu qu'Access permet cela, mais :

    - Comment gérer le chemin d'acces au fichier base sur les postes clients ?

    - Ensuite après déploiement, comment faire évoluer la base (par exemple ajouter une colonne à une table) ?

    - Enfin, comment générer un exécutable puisque Access ne sera pas forcément installé sur les postes clients ?

    MERCI infiniment

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour
    Un peu de lecture ici pour donner des pistes.

  3. #3
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour

    En complément de la réponse de GAYOYT :Salut:

    Par chance chaque poste doit disposer de sa propre base (pas de partage ou base commune).
    Quand tu dis qu'il n'y a pas de base commune, veux-tu dire que ton application et ses données résident sur le poste client ?
    Que tu n'as pas l'architecture classique : la frontale (formulaires, états, requêtes, code ...) sur le poste client et les données sur un serveur partagé ?

    Pour le moment je vais supposer que tu as Frontale locale et Dorsale réseau.

    - Comment gérer le chemin d'acces au fichier base sur les postes clients ?
    Grâce au gestionnaire de tables liées, tu peux préciser où se trouve la BD.
    La solution la plus simple est de s'assurer que ta BD dorsale soit "à la même place" pour tous les clients (ex : \\TonServeur\TonRepertoire\).
    Sinon tu peux, par VBA, assigner un chemin via la propriété .Connect de l'objet TableDef et la méthode .RefreshLinkCe que je fais quand je dois le faire c'est que je teste à l'ouverture si ma DB Dorsale est visible avce Dir(). Si je la trouve c'est OK, sinon j'ouvre un formulaire de saisie où je demande le nouveau chemin. J'applique ensuite ce chemin à tous mes objets dao.tabledef de l'objet dao.database et la collection .TableDefs.

    - Ensuite après déploiement, comment faire évoluer la base (par exemple ajouter une colonne à une table) ?
    Pour la dorsale, tu fais les modifs dans la dorsale et tu fais un rafraichissement des liens. Les modifs seront prises en compte.
    Pour la frontale, tout dépend de la taille de ta frontale.
    Si elle est relativement petite, la solution la plus simple est de recopier à chaque démarrage un modèle que tu déposes dans le répertoire commun avec un .bat du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    copy \\TonServeur\TonRepertoire\TonModele.accdb C:\TonRepertoire\*.*
    call "C:\TonRepertoire\TonApplication.accdb"
    L'avantage c'est que tu es sûr que ton client a toujours la dernière version.

    Si elle est trop grosse, alors il faut tester puis copier.

    Dans ce cas là on peut mettre un table VersionReseau dans le modèle qui est liée au modèle sur le réseau et qui est comparé au contenu de la table VersionLocale.
    Si VersionLocale<VersionReseau alors tu alertes l'utilisateur, tu appelles un .bat avec un message du type

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    echo Appuyer sur la touche [Entrée] losrque la base de données est fermée.
    pause
    copy \\TonServeur\TonRepertoire\TonModele.accdb C:\TonRepertoire\*.*
    call "C:\TonRepertoire\TonApplication.accdb"
    Tu fais un docmd.quit pour fermer l'application.

    Quand l'utulisateur a confrimé que la BD est fermée par appuis sur [Entrée], la nouvelle BD est copiée ne local puis ouverte.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  4. #4
    Membre habitué
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2015
    Messages
    402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Février 2015
    Messages : 402
    Points : 153
    Points
    153
    Par défaut
    Bonjour et merci beaucoup à toi Marot_r de prendre le temps de me répondre.

    J'ai bien lu ton message, mais je suis complètement perdu

    Oui l'application et les données doivent résider sur le poste client. Chaque client doit disposer de sa propre base. Donc pas de serveur à gérer : ni pour l'application, ni pour les données. Chaque poste client doit être absolument autonome.

    Je veux juste, sur le PC de l'utilisateur, un fichier pour l'application et un autre pour les données. C'est tout !
    Chaque client (ou PC) a à gérer des infos qui lui sont propres, et elles ne doivent jamais être partagées !

    Chaque client doit donc disposer de sa propre base sur son PC, accessible par lui et lui uniquement et personne d'autre.

    En principe il s'agit du cas le plus basic qui soit, non ?

    Marot_r, si tu pouvais à nouveau prendre quelques minutes pour me répondre, je t'en serais infiniment reconnaissant car mes clients commencent à s'impatienter et moi je commence à stresser grave ! MERCI ...

  5. #5
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    En principe il s'agit du cas le plus basic qui soit, non ?
    En fait, non.

    Pour la distribution sur chaque poste pas de problème majeur. Tu zippe le tout et tu l'envois par Courriel avec les instructions d'installation ou tu utilises un "packageur".
    L'article mentionné précédemment répond au problème du packageur il me semble.

    Tes problèmes vont survenir pour les mises à jour.

    Si tu changes seulement la frontale, là aussi pas de problème, c'est comme une installation initiale qui vient écraser la version existante.

    Pour la dorsale c'est BEAUCOUP plus compliqué car il faut par un moyen ou un autre refaire toutes les modifications que tu as faites en développement dans ta dorsale de production.

    Une solution serait que tu distribues un "Metteur à jour". C'est à dire une BD Access qui ouvre ta dorsale et la modifie (via VBA ou SQL). Je n'ai jamais fait de chose semblable mais je sais que c'est possible.

    On peut même, sans-doute, intégrer le module de modification dans la dorsale et via un fichier de paramètres ou autre faire en sorte qu'elle se modifie elle-même.
    Avec un fichier de paramètres, utiliser du SQL sera probablement le plus facile. Le fichier contiendrai des truc du genre "ALTER Table ...".

    Ce n'est pas simple et c'est pour cela que dans la mesure du possible on place la dorsale sur le réseau accessible au développeur.
    Il faut certes refaire les modifs mais c'est à une seule place et on ne dépend pas d'un automate.

    Avec une recherche Google "Microsof Access update back-end" voici ce que j'ai trouvé

    http://www.peterssoftware.com/beu.htm

    Ça parait intéressant mais je n'ai pas regarder le code.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par denisduval75 Voir le message
    Je veux juste, sur le PC de l'utilisateur, un fichier pour l'application et un autre pour les données. C'est tout !
    Bonjour denisduval75, Bonjour marot_r

    Tu veux donc une appli frontale\dorsale.

    Encore un peu de lecture ici
    Même si ce n'est pas en multi-utilisateurs, le principe est le même.

  7. #7
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 169
    Points
    12 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    J'apporte mon grain de sel même s'il fait doublon...
    En fait, ta base Frontale (Appli) doit posséder :
    • une procédure de rattache automatique des tables
    • une procédure qui procède aux différentes modifications de structure et de données dans la base frontale (INSERT, DELETE, UPDATE, ALTER)
    • une pocédure qui verifie la version (inscrite en dur dans ton code : Version_Actuelle)



    Ca donne (grossièrement):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If Version_Actuelle < Version_Livree Then
        LancerMajStructureDonnee(Version_Actuelle)
    End If
    LancerMajStructureDonnee(Version_Actuelle) est la procédure qui procède aux éventuelles modifications de la base dorsale et où le paramètre Version_Actuelle représente le numéro de la fonction ou du Case d'un Select Case pour ne pas procéder deux fois de suite (Erreur fatale) à une même modification déjà effectuée auparavant...

    Bon, je sais, l'approche comme ça n'est pas simple mais c'est un moyen pratique pour distribuer des applis à différents clients répartis un peu partout dans le pays... quelque soit la version de leur appli...

    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0
    *** Je recherche des profils (2 ans min.) Java EE, Fullstack, Front, .Net, Mobile... pour CDI ***

  8. #8
    Membre habitué
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2015
    Messages
    402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Février 2015
    Messages : 402
    Points : 153
    Points
    153
    Par défaut Déploiement sur postes clients
    Merci à tous pour vos réponses. Je vais étudier calmement tout ceci ... MERCI

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

Discussions similaires

  1. Déploiement d'une DBE sur poste client
    Par flash11 dans le forum Bases de données
    Réponses: 10
    Dernier message: 25/01/2011, 11h42
  2. Réponses: 7
    Dernier message: 18/01/2007, 15h59
  3. Installation OCX sur poste client
    Par BOUBOU81 dans le forum C++Builder
    Réponses: 1
    Dernier message: 31/05/2006, 11h45
  4. Réponses: 6
    Dernier message: 09/11/2005, 17h29
  5. [CR][VB6]PB sur poste Client
    Par Angusy dans le forum SDK
    Réponses: 8
    Dernier message: 16/04/2005, 20h20

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