Bonjour à tous,
J'ai essayé de mettre le titre le plus clair possible mais il s'agit d'un concept que je maîtrise très mal et qui me pose actuellement problème. Je vais donc essayer de décrire ce problème du mieux possible:
J'ai au sein de mon entreprise une base Access qui permet à toute une partie de la société d'enregistrer des informations. Lorsqu'ils rentrent leurs informations via des formulaires, celles-ci sont envoyées (et donc récupérées quand ils veulent les consulter) sur un serveur (Sybase). Voila pour le fonctionnement général rapidement décris.
Afin de permettre le développement et l'amélioration de cette base Access, nous avons une version accdb stockée sur le serveur de la société afin de faire les modifications que nous souhaitons faire, et nous postons une version compilée (accde) zippée sur l'intranet de la société afin que les utilisateurs puissent la télécharger et l'utiliser. Nous laissons également cette nouvelle version accde au même endroit sur l'intranet que la version accdb. A chaque nouveau déploiement, une macro au sein de la base permet également de générer un fichier .txt contenant le numéro de version de la base qui sert a référence pour savoir la version actuelle de l'utilisateur. Ce fichier .txt contient uniquement un numéro indiquant la version de la base et est également téléchargé sur l'intranet à chaque nouveau déploiement avec la version accde de la base. Ce numéro est également présent au sein d'une table directement au sein de la base Access. J'espère avoir été assez clair sur l'organisation et le process de déploiement d'une nouvelle version (la dernière version accdb est bien entendue recompilée à chaque nouveau déploiement pour créer un nouveau fichier accde qui est le fichier sauvegardé au meme endroit sur le serveur et zippé puis téléchargé sur l'intranet pour les utilisateurs). Ainsi lors de l'ouverture par les utilisateurs de leur version accde préalablement téléchargée, la base reconnait qu'il y a eu un nouveau déploiement et met à jour automatiquement la base.
J'en arrive enfin à mon problème: récemment, ma société a changé le site internet hébergeant l'intranet. J'ai donc voulu modifier dans la base Access le lien entre celle-ci et le site intranet pour qu'elle puisse se mettre à jour proprement à chaque nouveau déploiement. J'ai donc trouvé une variable globale ayant l'adresse URL de l'intranet et ai remplacé celui-ci par l'URL du nouvel intranet ou est hébergée la nouvelle version. Cependant, lorsque je télécharge ensuite la nouvelle version sur l'intranet et que je lance celle-ci, elle effectue une mise à jour et semble récupérer l'ancienne version située sur l'ancien intranet. Et je ne comprend pas comment cela est possible sachant que j'ai bien modifié l'adresse URL au sein de la base.
En exécutant le code manuellement sur la version accdb, (après avoir modifié le numéro de version au sein de la base Access pour qu'il simule une mise à jour), il semblerait que le programme aille bien chercher le nouveau fichier .txt sur le nouvel intranet pour comparer les 2 versions et détecte bien le changement de version avec le réel nouveau numéro situé sur le nouvel intranet mais lorsqu'il commence la mise à jour, il semblerait qu'il utilise l'ancienne version toujours hébergée sur l'ancien intranet en .zip. Lors de l'exécution en pas à pas, j'ai également remarqué qu'une base .accde nommée dans le code updater était générée et semble être utilisée pour la mise à jour mais je n'ai aucune idée de ce qu'elle contient ni de comment elle est générée (il semblerait que ça soit via des BLOB, mais c'est une notion qui m'est totalement étrangère et ou je suis totalement perdu).
J'espère avoir été le plus clair possible et si quelqu'un a une idée de comment mettre à jour ce lien pour que la bonne version soit récupérée lors du déploiement et de la mise à jour automatique des versions des utilisateurs ça me serait d'une grande aide!!
N'hésitez pas si vous avez besoin d'éclaircissements, je ferais de mon mieux.
Yann
Partager