|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() |
Bonjour. Je m'occupe d'une base de données en access 2003. Je fais les nouveaux formulaires, états, etc. Ensuite, je dois envoyer, via le réseau, la nouvelle base de données à tous les utilisateurs. J'ai réussi à faire apparaitre un message dès qu'une mise à jour a été faite. Maintenant, je souhaiterais, que dès qu'un utilisateur clique sur le message de mise à jour, qu'Access se ferme, copie la dernière version sur le serveur (\\xxxsrv001\amt\amt.mdb) et remplace la "vieille" version à l'emplacement défini pour tous les utilisateurs (c:\documents and settings\%username%\my documents\amd.mdb). Puis, la nouvelle version s'ouvre automatiquement. Je suis ouvert à toutes idées. En vous remerciant pour votre aide.
|
|
|
00
|
|
|
#2 | ||||
|
Membre éclairé
![]() Michel Développeur informatique Inscription : février 2008 Messages : 263 ![]() |
Bonjour,
ayant eu la même problématique, je te livre ce qui me sert désormais à faire des mises à jour automatique pour toutes les applications que je développe. Bien entendu il te faudra l'adapter à tes propres besoins ... un peu de boulot quand même ! Je t'ai néanmoins mis quelques commentaires ... Michel Code :
Code :
x.xx etant le N° de la version Je dois ce code à ce site ! Bonne chance ! |
||||
|
|
00
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() |
Merci pour ta réponse.
Petite question qui peut paraître idiote pour toi. Le 1er code se met dans un module ? Ensuite, comme tu changes de nom de version à chaque fois, le nom du raccourci ne correspond plus. Exact ? En te remerciant. Francis |
|
|
00
|
|
|
#4 |
|
Membre éclairé
![]() Michel Développeur informatique Inscription : février 2008 Messages : 263 ![]() |
Il n'y a aucune question idiote quand on ne connait pas la réponse :-)
le premier code je le place au début de la fonction (donc dans un module) qui est appelée quand le programme s'ouvre (je l'ai mise dans un module qui est appelé par un macro de type autoexec). C'est là que je teste (à ma façon, toi à la tienne) s'il doit y avoir ou non un changement de version Si oui j'execute le code que je t'ai transmis qui copie la nouvelle version (qui a donc un nom différent de l'ancienne puisque le N° de version inclu dans le nom est différent) à l'emplacement de l'ancienne version (sur le bureau ou dans un dossier, etc.), ensuite j'ouvre une nouvelle instance d'accès dans laquelle je lance la nouvelle version ... qui execute le code du formulaire que je t'ai dit de créer. Lequel formulaire supprime l'ancienne version ... et ensuite j'ouvre mon formulaire de démarrage Si non j'ouvre mon formulaire de démarrage voilà j'espère que cela pourra t'aider. Michel |
|
|
00
|
|
|
#5 |
|
Membre éclairé
![]() Michel Développeur informatique Inscription : février 2008 Messages : 263 ![]() |
Je n'avais pas vu ta deuxieme question :
Je n'utilise pas de raccourci : d'une part, sur le serveur je ne mets que les table communes (par fractionnement de la base initiale - on appelle ça la dorsale je crois) et chaque utilisateur a sur son bureau (ou dans un dossier quelqconque) non pas un raccourci mais une copie (pas raccourci) de la partie Frontale de l'application mdb. ainsi chaque utilisateur quand il lance le module qui est en sa possession fait sa propre mise à jour en allant récupérer (par le programme que je t'ai transmis ci-dessus) la nouvelle frontale que j'ai placée dans un dossier partagé qui leur est accessible. pour le changement de version, j'ai dans la table paramètre le dernier n° de version utilisable et dans le code du module (avant le test de la mise à jour) j'ai le numéro de la version possédée par les utilisateurs, en dur. c'est par comparaison avec le n° de version de la table paramètre et du numero dfe version en dur que je détermine si la mise à jour doit ou non etre faite : quand ces 2 versions concordent : pas de mise à jour quand elles ne concordent pas : mise à jour. Bien entendu dans la nouvelle version (celle que le programme va chercher pour la copier pour les utilisateurs), le n° de version "en dur" concorde parfaitement avec le n° de version de la table paramètre pour éviter toute mise à jour ultérieure. Donc quand je décide de changer de version par exemple pour passer passer de MonProg v1.00.mdb à MonProg v2.00.mdb j'exécute les opérations suivantes dans l'ordre : 1° dans la nouvelle version, dans le module j'inscris en dur le n° de la nouvelle version (dans ce cas je mets : 2.00), je change le nom du fichier qui s'appelle désormais : MonProg v2.00.mdb 2° je copie cette nouvelle version dans le dossier partagé accessible à tous mes utilisateurs 3° j'ouvre ma base en mode développeur (en appuyant sur shift pour éviter d'exécuter la macro autoexec) et je change dans la table paramètre le n° deversion 1.00 en 2.00 Ces trois opérations étant à exécuter dans cet ordre Voià j'espère avoir été clair ... un changement de version (150 utilisateurs différents) ne me prends, montre en main que 3 minutes ... et mes utilisateurs se mettent à jour à leur rythme : chaque fois qu'il ouvrent leur logiciel et que le besoin bien sûr est avéré. Michel |
|
|
00
|
|
|
#6 |
|
Candidat au titre de Membre du Club
![]() |
c'est exactement ce que je cherchais. Je vais mettre tes idées en pratique.
Un grand merci et très bonne journée. En te remerciant Francis |
|
|
00
|
|
|
#7 |
|
Candidat au titre de Membre du Club
![]() |
voilà, j'ai bien avancé. Ma nouvelle base de données (frontale) est bien copiée à l'endroit souhaité mais je n'arrive pas à supprimer l'ancienne base frontale.
J'ai une erreur avec cette ligne : ' On donne au formulaire le chemin complet de la base à détruire accNewApp.Forms("F-fmMajBDD").SetOldBdd CurrentProject.FullName Faut-il définir l'endroit pour SetOldBdd ? En vous remerciant |
|
|
00
|
|
|
#8 | ||
|
Membre éclairé
![]() Michel Développeur informatique Inscription : février 2008 Messages : 263 ![]() |
non.
Quelle est l'erreur ? Tu peux peut être tenter de mettre (temporairement) en route ce que j'ai mis en commentaire : Code :
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com