|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
![]() ![]() ![]() Claude LELOUPChercheur de loisirs (ayant trouvé !) Inscription : novembre 2006 Messages : 5 236 ![]() |
Bonjour,
A priori, j’ignore la version dont dispose celui qui utilisera mon application. Sur ma machine, [Access2000], l’application fonctionne avec les références suivantes : (en utilisant Function GetReferences() de cafeine) · Référence : VBA - Version : 4.0 - FullPath : C:\Program Files\Fichiers communs\Microsoft Shared\VBA\VBA6\VBE6.DLL · Référence : Access - Version : 9.0 - FullPath : C:\Program Files\Microsoft Office2K\Office\msacc9.olb · Référence : utility - Version : 0.0 - FullPath : C:\Program Files\Microsoft Office2K\Office\1036\utility.mda · Référence : DAO - Version : 5.0 - FullPath : C:\Program Files\Fichiers communs\Microsoft Shared\DAO\DAO360.DLL · Référence : VBIDE - Version : 5.3 - FullPath : C:\Program Files\Fichiers communs\Microsoft Shared\VBA\VBA6\VBE6EXT.OLB · Référence : Scripting - Version : 1.0 - FullPath : C:\WINDOWS\system32\SCRRUN.DLL ma question principale : Comment dois-je m’y prendre, pour que mon utilisateur n’ait pas à modifier les références originales pour utiliser l’application avec une version Access autre ? une question subsidiaire : existe-t-il un tableau de correspondance qui donnerait l’équivalent de mes références dans les versions Access plus récentes ? Merci déjà pour l'aide. |
|
|
10
|
|
|
#2 |
|
Membre émérite
![]() ![]() Lanza Bertucci-DomergueDéveloppeur informatique Inscription : juin 2007 Messages : 937 ![]() |
En voilà une question intéressante.
J'avais rencontré le même problème à une époque. Moi ce que j'avais fait c'est que ma base frontale avait pour seule référence Microsoft DAO. Les chemins de mes références étaient stockés dans une table prévue à cet effet. Ensuite j’avais mis un bouton qui supprimait toutes les références de la base puis ajoutait toutes les références de la table (située sur la base dorsale) lors de la première utilisation. |
|
|
20
|
|
|
#4 | |
![]() ![]() ![]() Claude LELOUPChercheur de loisirs (ayant trouvé !) Inscription : novembre 2006 Messages : 5 236 ![]() |
OK, merci je progresse :
1° ----> quand je connaîtrai les références, je les stockerai dans une table appelée « UIOPX » en souvenir. Merci azertix et je vote ! 2° Avec, bien obligé en l'occurrence, un late binding. Quoique le lien de Kloun contienne dans sa conclusion : Citation:
Merci kloun Mais encore faut-il que je connaisse le nom des références équivalentes à celles de ma version. Où puis-je trouver une liste ? :-) Smile (prior to above operation) :-( Frown (at prospect of above operation) ;-) Wink (it's ok you don't need above operation after all) |
|
|
|
10
|
|
|
#5 | |
|
Membre émérite
![]() ![]() Lanza Bertucci-DomergueDéveloppeur informatique Inscription : juin 2007 Messages : 937 ![]() |
Si j'ai bien compris ce qui est dit dans le lien de Kloun (j'y ai jeté un œil), Access est capable dans une version supérieure d'ajouter la référence la plus récente si une référence plus ancienne est activée.
Edit Je confirme : Citation:
Edit 2 Pour en être sûr, je pense que le mieux est de tester... Si tu veux, vu que tu sembles utiliser Access 2k, tu m'envoies une base de test et je te dis si ça marche sans erreur (j'ai Access 2003). |
|
|
|
00
|
|
|
#6 |
![]() ![]() ![]() Claude LELOUPChercheur de loisirs (ayant trouvé !) Inscription : novembre 2006 Messages : 5 236 ![]() |
De mon côté, j'ai compris que Access se débrouillait parce l'application donnée en exemple (Word ou Excel) fait partie de la famille Office.
Vois d'ailleurs la syntaxe : Code :
Set oXL = GetObject(, "Excel.Application") Edit 1 : que c'est sympa. Edit 2 : en annexe la base actuelle. constatations : a) je ne peux décocher les 2 premières références b) je ne trouve pas la syntaxe du code qui permettrait de lier les suivantes après ouverture de la DB |
|
|
10
|
|
|
#7 |
|
Membre émérite
![]() ![]() Lanza Bertucci-DomergueDéveloppeur informatique Inscription : juin 2007 Messages : 937 ![]() |
Bonjour.
Alors j'ai ouvert la base, lancé tous les formulaires, cliqué sur tous les boutons et je n'ai pas rencontré d'erreur. En allant dans les références du projet VBA, il semble que les références aient été passées dans la version supérieure (cf PJ). Pour avoir déjà rencontré des problèmes de compatibilité avec les références, je sais que lorsque qu'une référence n'est plus compatible avec la version en cours, Access retourne des erreurs assez rapidement et il est mentionné "MANQUANT" en préfixe de la référence. À l'époque, je solutionnais le problème en décochant les références mentionnées manquantes puis en les rajoutant via mon système d'ajout automatique. Pourrais-tu mettre la liste des références que tu vois toi avec Access 2k ? Je serais curieux de voir si Access a changé les versions tout seul
|
|
|
00
|
|
|
#8 | |
![]() ![]() ![]() Claude LELOUPChercheur de loisirs (ayant trouvé !) Inscription : novembre 2006 Messages : 5 236 ![]() |
Bonjour et merci pour ton intérêt.
Citation:
![]() Donc Access s'adapte. Je te reviens plus tard : j'essaie de suivre la piste suivante : http://www.developpez.net/forums/d31...on-references/ |
|
|
|
10
|
|
|
#9 |
|
Membre émérite
![]() ![]() Lanza Bertucci-DomergueDéveloppeur informatique Inscription : juin 2007 Messages : 937 ![]() |
Ok c'est déjà une bonne nouvelle, même si ça ne veut pas dire que ça va marcher systématiquement
|
|
|
00
|
|
|
#10 | ||||
![]() ![]() ![]() Claude LELOUPChercheur de loisirs (ayant trouvé !) Inscription : novembre 2006 Messages : 5 236 ![]() |
Citation:
Qu'est-ce à dire ? ----------- En explorant les posts de kloun, j'ai aussi trouvé : Code :
Mon instinct me dit que le lien renseigné au post 8 est la bonne voie, mais l'état de mes connaissances 1° ne me permet pas d'actualiser le code (si nécessaire) 2° de comprendre quand et comment déclencher le processus. ----------------- Citation:
|
||||
|
|
10
|
|
|
#11 | |||||||
|
Membre émérite
![]() ![]() Lanza Bertucci-DomergueDéveloppeur informatique Inscription : juin 2007 Messages : 937 ![]() |
Je t'ai retrouvé mon code pour ajouter les références courantes dans la table CHEMIN_REF :
Code :
Code :
Code :
Citation:
|
|||||||
|
|
20
|
|
|
#12 |
![]() ![]() ![]() Claude LELOUPChercheur de loisirs (ayant trouvé !) Inscription : novembre 2006 Messages : 5 236 ![]() |
Merci Azertix,
J’ai pu utiliser ta procédure. NB pour qu’elle puisse fonctionner, il faut au moins qu’une référence Microsoft DAO soit présente au départ. Sinon, sur le bouton cmdFirstRun, le clic coince. ![]() J’ai d’abord alimenté la table CHEMIN_REF avec la fonction GetReferences. Ensuite, j’ai vérifié ce qui se passait lorsque, volontairement, je désactive une référence : ---> un clic sur le bouton cmdFirstRun. ---> Parfait : la procédure l’ajoute. Mais lorsqu’une référence manque le programme va chercher son chemin dans la table … qui contient les chemins sur mon PC, à l’origine, quand j’ai chargé avec GetReferences. Exemple Utility, chez moi a le chemin : « C:\Program Files\Microsoft Office2K\Office\1036\utility.mda », la probabilité que mon correspondant ait le même chemin, est assez faible. Comment puis-je gérer cela ? |
|
|
10
|
|
|
#13 |
![]() ![]() Maintenance données produits Inscription : décembre 2005 Messages : 3 939 ![]() |
Bonsoir,
Avec Access 2007 ça ne passe pas. Référence manquante : utility.mda Normal, le fichier s'appelle utility.accda dans Office 2007 A quoi te sert la référence à utility.mda ? Il y a peut-être moyen de s'en passer. A+ |
|
|
20
|
|
|
#14 |
![]() ![]() ![]() Claude LELOUPChercheur de loisirs (ayant trouvé !) Inscription : novembre 2006 Messages : 5 236 ![]() |
Bonsoir LedZeppII,
Merci pour ton intérêt. Je viens de faire un contrôle rapide dans l'application qui m'occupe maintenant, j'ai supprimé la référence. Le débogage ne signale rien. Je dois approfondir mais c'est probablement un reliquat de la version sur Access97. Un problème en moins ! Espérons. Merci en tout cas. Bonne soirée. |
|
|
10
|
|
|
#15 |
|
Membre Expert
![]() Inscription : avril 2006 Messages : 1 049 ![]() |
Bonjour à tous,
les références sont dans la base de registre sous la clé HKEY_CLASSES_ROOT\TypeLib je crois. Certaines références ont le même numéro GUID quelque soit la version du produit. Pour gérer les emplacements des ref quelque soit le poste, comme azertix j'enregistre dans une table les références en scindant en deux le nom du fichier, une partie représente le dossier sous forme d'alias. Les alias que j'utilise reprennent à peu de choses près les variables d'environnement, ProgramFiles, CommonProgramFiles, Windir (il y a peut-être d'autres variables d'environnement sous Vista et seven) ...... plus quelques autres comme OfficeDir, InstallDir(dossier d'accueil de la base), DataDir... Ainsi, les emplacements des fichier sont un plus indépendants du poste de développement. Une fonction sert à faire la conversion alias-chemin, chemin-alias. |
|
|
20
|
|
|
#16 | |
![]() ![]() ![]() Claude LELOUPChercheur de loisirs (ayant trouvé !) Inscription : novembre 2006 Messages : 5 236 ![]() |
Bonjour ilank,
Merci pour ta réponse. Cependant, nous ne boxons pas dans la même catégorie : je n'ai aucune formation informatique, seulement un peu Access par essai/erreur, <F1> et ce forum. Je n'ai donc pas tout compris et dès lors pas les moyens d'appliquer ton idée. Un exemple m'aiderait sans doute. Quoi qu'il en soit, je te remercie : le problème est chez moi. N'est-ce pas dans le même esprit que ceci ? Citation:
|
|
|
|
10
|
|
|
#17 | ||
|
Membre Expert
![]() Inscription : avril 2006 Messages : 1 049 ![]() |
Bonjour ClaudeLELOUP,
les variables d'environnement sont des variables du système et propre à une session. Pour voir un exemple, clique Démarrer => Exécuter => et saisie cmd pour ouvrir une fenêtre DOS (ecran en mode texte), ensuite tu tapes SET cette commande renvoie à l'écran la liste des variables dites d'environnement. (attention !! si sans paramètre cette commande renvoie la liste des variables et leur contenu, SET toto=X permet de créer la variable toto si elle n'existe pas et lui affecte la valeur X SET toto : vide la variable de tout contenu, ECHO %toto% renvoie le contenu de la variable toto) Je ne sais pas pour Vista et Windows 7 mais pour les versions précédentes, il y existe ces variables ProgramFiles => contient l'emplacement où les programmes sont enregistrés (Ex: C:\Program Files) CommonProgramFiles => contient l'emplacement des fichiers communs à tous les programmes (Ex C:\Program Files\Fichiers Communs) WinDir => contient l'emplacement du dossier d'accueil du système (Ex: C:\Windows) ..... Tous ces variables sont normalement propre à une session utilisateur, puisque plusieurs systèmes peuvent coexister sur un ordinateur. Bref, ainsi en remplaçant dans la table une partie de l'emplacement du fichier par un nom de variable ou un alias, l'emplacement d'un fichier devient un peu plus indépendant du poste. Un exemple, j'utilise plusieurs alias que j'encadre de % ainsi, le chemin vers le fichier C:\Program Files\Office\1036\utility.mda, deviendrait dans la table %OfficeDir%\1036. Maintenant quelque le poste de travail, il suffit de remplacer l'alias %OfficeDir% par sa véritable valeur qui est donné par SysCmd(acSysCmdAccessDir). un exemple de table : Code :
|
||
|
|
20
|
|
|
#18 |
|
Membre Expert
![]() Jacques PetiotIndépendant développeur et formateur Inscription : octobre 2007 Messages : 891 ![]() |
Bonjour à tous
dans ma petite expérience, Access franchi en général le pas à la montée: >Excel 10 deviens automatiquement >Excel 12 par contre ça ne marche pas à la descente ça ne marche pas non plus si le produit recherché n'est pas installé chez l'utilisateur, (mon frère n'utilise pas Excel) ce qui dans certains cas nécessite un téléchargement (CDO par exemple)
__________________
-------------------Simplifi----------comme si tout était simple-------- |
|
|
10
|
|
|
#19 |
![]() ![]() ![]() Claude LELOUPChercheur de loisirs (ayant trouvé !) Inscription : novembre 2006 Messages : 5 236 ![]() |
Merci ilank pour tes explications claires.
J'examine tout cela en détail Merci Simplifi, Je m'en fais peut-être pour rien ? Dans mon cas, mon viel ACCESS va mettre celui de mes correspodants à contribution. L'escalier, c'est bon pour la santé ! Bon week end en tout cas. |
|
|
10
|
|
|
#20 |
|
Membre émérite
![]() ![]() Lanza Bertucci-DomergueDéveloppeur informatique Inscription : juin 2007 Messages : 937 ![]() |
Bien vu le coup des variables d'environnement. Je ne savais pas qu'on pouvait les utiliser dans Access.
J'ai bien fait de passer par là (je vais suivre la suite de la discussion avec intérêt) |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com