1 membre
Connectés : ( personne )
- La Charte du Forum - Forum - Questions générale
Sujet n° 335 |
Référence manquante non enregistrée |
le 05/03/2010 : 15:59 par marsouin
visiteur |
Bonjour Pierre,Me voici avec un nouveau problème.Je réalise mes applications sous Vista et lorsque je les installe sur un PC en WinNt ou XP, j'ai un message qui me dit que la référence est manquante et qu'elle n'est pas enregistrée.J'ai donc essayé le code suivant :Dim Refs As Object
Dim Ref As ObjectSet Refs = Application.ReferencesFor Each Ref In Refs 'Parcoure les références
If Ref.IsBroken = True Then 'Si une référence est manquante Refs.Remove Refs.item(Ref.Name) 'On la supprime
End If
Next RefNéanmoins, cela ne marche pas, j'ai une erreur au niveau de l'Item.Suite à ce code, je réinstalle les références avec les bons chemins en fonction de la version du PC.Merci de bien vouloir me conseiller.CordialementChristophe |
|
|
Réponse n° 1 -------- le 06/03/2010 : 14:14 par 3Stone
Administrateur
|
Bonjour,
Ben, avec ce code, tu supprimes le lien vers la référence manquante... En fait, il faudrait savoir quelle est cette référence... car on ne peut supprimer que celles qui ne sont pas utilisés.
Cordialement, Pierre(3stone) |
|
|
Réponse n° 2 -------- le 06/03/2010 : 14:19 par marsouin_89
visiteur |
Bonjour Pierre,
Tu as tout à fait raison.
Mais le problème est le suivant :
Si la référence à Broken=True, on ne peut pas utiliser le Name ou le FullPath car sinon cela déclenche une erreur.
En fait, ce n'est pas que ma référenc n'est pas utilisée, c'est que son chemin est différent en fonction de l'installation du PC (WinNt ou XP).
De ce fait, elle n'est pas enregistrée de la même manière dans le registre.
Peut être qu'il faudrait utiliser Guid mais là je coince.
Comment Faire ?
Bon Week-end et merci beaucoup.
Cordialement
Christophe |
|
|
Réponse n° 3 -------- le 06/03/2010 : 16:22 par 3Stone
Administrateur
|
Bonjour,
Si tu utilises ceci, cela devrait te donner le GUID de la référence manquante.
Si je trouve un moment, je ferai une fonction pour traiter cela...
Cordialement, Pierre(3stone) |
|
|
Réponse n° 4 -------- le 06/03/2010 : 17:18 par marsouin_89
visiteur |
Pierre,
Je connaissaie effectivement ce code.
La question est :
A partir de ce guide qui se retrouve forcément absent lorsque l'on change de PC qui n'est configuré pareil (WinNt ou XP), comment faire pour décocher la case afin de relancer l'installation des références conformément au type d'installation du PC ?
Cordialement
Christophe |
|
|
Réponse n° 6 -------- le 06/03/2010 : 20:39 par marsouin_89
visiteur |
Pierre,
Merci pour toutes ces précisions. Elles sont toujours très riches en enseignement.
Cela dit, comment faire ?
Cordialement.
Christophe |
|
|
Réponse n° 7 -------- le 21/03/2010 : 21:07 par marsouin_89
visiteur |
Bonjour Pierre,
Concernant ce problème de référence manquante, je me sui souvenu que s'il manquait une référence dans un fichier Mde, le fichier était définitivement corrompu. Il me fallait donc une autre solution. Solution, quelque peu tordue, mais qui fonctionne bien.
En voici le cheminement pour ceux que cela interesse :
Lorsque je distribue mes applications, je les intègre dans un executable que je réalise avec Setup.2go. Avant de préparer mon executable, je decoche toutes les références de ma frontale, ainsi que celles d'un fichier *.mdb (que nous appelerons Librairie) qui deviendra un Mde et qui sera défini comme référence à ma frontale. Cette Librairie contient mes codes courant (Fichier/Ouvrir, Enregistrer sous, Couleur d'arrière plan d'Access, etc.).
Lors de l'ouverture de la frontale, s'il y a moins de références que prévu, cela signifie que l'on a changé de PC. Donc, un code réinstalle toutes les références. Ensuite, j'ouvre à distance la librairie.mdb, j'execute une macro qui lance l'installation des références de la même manière que pour la frontale. J'utilise ensuite une fonction de Pierre pour créé ma Librairie en Mde et je supprime (Kill) la librairie Mdb afin d'éviter que les utilisateurs aillent fouiner dedans . Enfin, j'ajoute cette Librairie.mde comme référence.
J'ai fait des essais d'un PC Vista vers un PC XP et tout fonctionne parfaitement. Plus de conflits de références manquantes ou non enrgistrées.
Merci à tous pour votre attention et une fois de plus un grand merci à Pierre pour ses fonctions (créer un Mde et ouvrir une base externe) qui m'ont
une fois de plus bien aidé.
Cela dit, si quelqu'un a une meilleur solution, je suis preneur.
Cordialement
Christophe |
|
|
Réponse n° 8 -------- le 23/03/2010 : 22:12 par 3Stone
Administrateur
|
Bonjour, Citation :Lorsque je distribue mes applications, je les intègre dans un executable
C'est ce que l'on appelle faire un empaquetage, comme je l'avais dit : Citation :S'il est absent, il faut faire un "empaquetage" de ton application pour ammener les choses qui manquent. Mais, Microsoft à prévu cela avec les outils idoines. Et on peut trouver un tutoriel bien fourni à cette adresse.
Cordialement, Pierre(3stone) |
|
|
sujet actif
sujet clos
Important!
Nouveau message -
Rectifier message
Clôturer sujet
Remonter
|