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

VBA Access Discussion :

Comment ajouter une référence dans MS Access ?


Sujet :

VBA Access

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 681
    Points : 214
    Points
    214
    Par défaut Comment ajouter une référence dans MS Access ?
    Bonjour,
    La FAQ ACCESS "Comment lister les références" donne in fine le code suivant pour ajouter une référence :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    References.AddFromFile("C:\Program Files\Common Files\System\ado\msado21.tlb ")
    A quoi correspondent les termes de la partie en rouge ?
    J'ai utilisé avec succès le code qui figure au début de cette FAQ pour lister les références de mon projet.
    Merci de votre aide éventuelle.

  2. #2
    Membre éprouvé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 956
    Points : 1 139
    Points
    1 139
    Par défaut Comment ajouter une référence dans MS Access ?
    Salut!

    De la doc ici.
    Essayer. Rater. Essayer encore. Rater encore. Rater mieux. (Samuel Beckett)
    Ou encore:
    Quand ça ne tourne pas rond dans le carré de l'hypothénuse , c'est signe qu'il est grand temps de prendre les virages en ligne droite.(Pierre Dac)
    ... Des principes qui m'ont beaucoup aidé en informatique...

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 681
    Points : 214
    Points
    214
    Par défaut
    ric500 merci.
    Je ne suis pas un expert en Access, mais je ne comprends absolument pas à quoi correspondent ces termes en rouge et comment je peux me servir des données du lien que tu indiques pour résoudre mon problème.
    Je continue à rechercher
    Cordialement.

  4. #4
    Membre éprouvé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 956
    Points : 1 139
    Points
    1 139
    Par défaut Comment ajouter une référence dans MS Access ?
    Bonjour AndréPe,

    Quand tu ajoutes une référence, c'est pour utiliser un code extérieur à ton application (on dit aussi bibliothèque). Ce code peut-être contenu dans un fichier de DLL ou dans une autre base Access...

    La partie en rouge représente le chemin d'accès et le fichier contenant ce code externe.
    Essayer. Rater. Essayer encore. Rater encore. Rater mieux. (Samuel Beckett)
    Ou encore:
    Quand ça ne tourne pas rond dans le carré de l'hypothénuse , c'est signe qu'il est grand temps de prendre les virages en ligne droite.(Pierre Dac)
    ... Des principes qui m'ont beaucoup aidé en informatique...

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 681
    Points : 214
    Points
    214
    Par défaut
    Bonjour,
    Mes tentatives échouent.
    J'ai donc pris la décision de rechercher d'autres chemins et d'interrompre la discussion sur cette question.
    Je remercie tous ceux qui y ont participé.
    De leurs suggestions il me restera certainement pas mal de choses utiles.
    Cordialement.

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 681
    Points : 214
    Points
    214
    Par défaut
    Bonjour,
    Après une trop longue pause forcée, je reprends mes recherches.
    Le fichier msado21.tbl existe bien dans mon W10.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    References.AddFromFile ("C:\Program Files\Common Files\System\ado\msado21.tlb ")
    Cette commande donne "Nom de module, de projet ou de bibliothèque d'objets déjà utilisé", ce qui est exact mais concerne une autre base.
    Où place-t-on le nom de la nouvelle base à référencer ?

  7. #7
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Bonjour,

    Non ça ne marche pas comme ça. L'instruction travaille sur l'application active.

    Tu dois d'abord ouvrir l'instance de cette application puis utiliser la méthode sur cet objet application.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 681
    Points : 214
    Points
    214
    Par défaut
    J'ai suivi (tout au moins je le pense !) tes conseils et, pour tester, ai créé dans l'application active une procédure, commandée par le bouton "cmdRef", qui contient la ligne en question
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     References.AddFromFile ("C:\Program Files\Common Files\System\ado\msado21.tlb ")
    Le résultat est le même.
    A noter que la base active est dans le le même répertoire que la dizaine de bases auxquelles elle est déjà référencée
    Je voudrais ajouter (par le code) une autre base B2 qui est aussi dans ce même répertoire.
    Où dois-je placer le nom/chemin de B2 ?
    Merci de ton aide.
    Bonne journée.

  9. #9
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Pour charger dans un autre fichier applicatif il faut que Application soit ouvert sur le fichier accdb.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Dim appaccess  As New Access.Application
    Set appaccess = CreateObject("Access.Application")
    appaccess.Visible = False
    appaccess.OpenCurrentDatabase "le chemin et le fichier de ton application", False
    appaccess.References.AddFromFile "chemin et fichier de ton composant"
    appaccess.Quit acQuitSaveNone
    Set appaccess = Nothing
    Pourquoi tu charges cette vieille version ?
    Tu n'as pas le 2.8 plutôt ?
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  10. #10
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 681
    Points : 214
    Points
    214
    Par défaut
    loufab, merci.

    Je n'ai pas choisi la version 21, elle était dans les références en place de mon appli.
    J'ai aussi les versions 25, 26, 27, 28 et 60.

    Dans le code que tu proposes, où apparaît ce N° de version ?

    A la ligne 6 "chemin et fichier de ton composant" je dois donc indiquer la base B2 que je souhaite référencer dans l'appli ?
    Cordialement.

  11. #11
    Membre chevronné Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 422
    Points : 2 181
    Points
    2 181
    Par défaut
    Citation Envoyé par AndréPe Voir le message
    Bonjour,
    La FAQ ACCESS "Comment lister les références" donne in fine le code suivant pour ajouter une référence :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    References.AddFromFile("C:\Program Files\Common Files\System\ado\msado21.tlb ")
    A quoi correspondent les termes de la partie en rouge ?
    J'ai utilisé avec succès le code qui figure au début de cette FAQ pour lister les références de mon projet.
    Merci de votre aide éventuelle.
    bonjour,
    si tu nous exposais le problème car j'ais l'impression qu'on ce fourvoie!

    pourquoi veux tu ajouter une reference alors q'il te suffis de les supprimer toutes et d'utilser ce code!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub test()
     Dim cn As Object: Set cn = CreateObject("Adodb.connection")
     cn.Open ConnectionString
     cn.Close
    End Sub

  12. #12
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 681
    Points : 214
    Points
    214
    Par défaut
    Thumb down, tu as raison, je pense aussi qu'on se fourvoie !
    J'aurais dû commencer par cela.

    Mon appli est un portail de généalogie, pour ne rien vous cacher, il s'agit de l'association "Cercle généalogique des cheminots".
    Dans un même répertoire j'ai
    - la base active BA, d'où partent les commandes
    - une douzaine de bases B(n) contenant des données spécifiques (tables, états et leur requêtes), le nombre et le contenu de ces B(n) étant susceptible de varier en fonction des informations reçues de nos correspondants.

    Les B(n) sont référencées dans BA pour lui permettre de récupérer à la demande l'état correspondant à un individu donné dans une B(n) donnée.

    Grâce à la FAQ Access, j'ai pu lister les références existantes et constater qu'elles utilisaient la version 21 de ado, mais j'ai été incapable par le code de créer une référence avec une nouvelle base.
    C’est le problème que je tente de résoudre avec l'aide du forum.
    Manuellement, pas de difficulté majeure, si ce n'est pouvoir donner un nom spécifique à la référence qui est un groupe de 3 lettres, ce que le code devrait permettre.

    Je ne sais si j'ai été assez clair, merci de me le dire.
    Cordialement.

  13. #13
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 598
    Points
    24 598
    Par défaut
    La question principale c'est pourquoi par code ?
    La secondaire pourquoi une version aussi ancienne d'ADO ? Je sais que la SNCF est la spécialiste du retard mais c'est pour les trains en principe.

    "Manuellement, pas de difficulté majeure, si ce n'est pouvoir donner un nom spécifique à la référence qui est un groupe de 3 lettres, ce que le code devrait permettre."
    Je ne comprend pas c'est quoi ce groupe de 3 lettres ?
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  14. #14
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 681
    Points : 214
    Points
    214
    Par défaut
    #loufab
    - Pourquoi par code : parce que il est fastidieux de traiter manuellement une série de 12 bases par exemple pour en tirer un index général qui servira à alimenter un site donnant les noms des nouvelles entrées dans le portail.
    - Pourquoi une version aussi ancienne d'ADO :parce que le portail ne date pas d'aujourd'hui, mais je suppose que pour utiliser une version plus récente, il faut refaire les références et je ne veux pas m'y aventurer avant d'être certain de pouvoir les recréer.

    - Ce groupe de 3 lettres est simplement le début du nom de chaque B(n). Au lieu par exemple de "Annuaires" on utilise "ANN" c'est moins long dans le code.

  15. #15
    Membre chevronné Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 422
    Points : 2 181
    Points
    2 181
    Par défaut
    Si on utilise Ado c'est uniquement pour accéder à une base de données par programme !

    Donc pas besoin de référence mais de creatobject et là la seule version d'Ado sera celle de la machine.

    Arrêtes de te compliquer la vie!

    Personnellement je me les taperai les 12 bases. Question de point de vue !

  16. #16
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 681
    Points : 214
    Points
    214
    Par défaut
    loufab #
    Peux-tu me dire où, dans le code que tu proposes, apparaît le N° de version de ado ?
    A la ligne 6 "chemin et fichier de ton composant" je dois donc indiquer la base B2 que je souhaite référencer dans l'appli ?
    Merci de ton aide.

  17. #17
    Membre chevronné Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 422
    Points : 2 181
    Points
    2 181
    Par défaut
    Bonjour,
    Personnellement j'ai toujours pas compris pourquoi tu avais besoin d'ado!

  18. #18
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 681
    Points : 214
    Points
    214
    Par défaut
    Thumb down Bonjour,
    Je me demande si nous parlons bien de la même chose.
    Lorsque, dans le code d’une appli, tu cliques sur"outils/références" tu obtiens une liste de références précédées d'une case à cocher.
    A partir de la on peut supprimer une référence ou en ajouter manuellement.

    La FAQ Access donne une méthode pour lister ces références, et c'est là que ado apparaît. Je ne sais si j'en ai besoin, mais il est bel et bien présent, voilà ce que je peux te répondre.
    Cette FAQ donne ensuite une méthode pour en créer par le code et c'est là que j'aurais besoin d'explications.

    Je constate avec regrets que l'unanimité n’existe pas parmi les réponses que je reçois de personnes plus qualifiées que moi dans ce domaine.
    Mais je ne désespère pas d’obtenir un jour la solution à mon problème que d'autres se sont certainement déjà posé et ont résolu !

    Merci de vos conseils
    Cordialement

  19. #19
    Membre chevronné Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 422
    Points : 2 181
    Points
    2 181
    Par défaut
    Thumb down Bonjour,
    Je me demande si nous parlons bien de la même chose.
    Lorsque, dans le code d’une appli, tu cliques sur"outils/références" tu obtiens une liste de références précédées d'une case à cocher.
    A partir de la on peut supprimer une référence ou en ajouter manuellement.
    Oui nous parlons exactement de la même chose.

    Activer les références permet,dans ton ca, d'utiliser un objet Ado par programme uniquement.

    Il est possible de ce passer des références en utilisant en lieu et place de new Adodb dans ton programme la méthode CreateObject.

    C'est à toi de faire le choix tu persiste à vouloir importer ta librairie ou tu te facilites la vie avec CreateObject ,et il n'y a plus de problème de version, c'est simple ?

  20. #20
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 681
    Points : 214
    Points
    214
    Par défaut
    Thumb down
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub test()
     Dim cn As Object: Set cn = CreateObject("Adodb.connection")
     cn.Open ConnectionString
     cn.Close
    End Sub
    Je voudrais essayer ta méthode, mais d'abord je ne trouve pas dans mon programme la méthode "new Adodb" dont tu parles.

    Ensuite, que dois-je mettre pour "ConectionString" si je veux créer les liens des bases B(n) avec ma base active BA ?

    A+

Discussions similaires

  1. [XL-365] Comment déclarer une plage dans un tableau en VBA
    Par alive85 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 26/06/2020, 09h06
  2. Comment faire une recherche dans ACCESS
    Par Bass_Room dans le forum Access
    Réponses: 2
    Dernier message: 02/06/2006, 10h51
  3. Réponses: 5
    Dernier message: 01/06/2006, 11h36
  4. Comment déclarer une DataSource dans server.xml
    Par guillaume06 dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 16/06/2004, 14h27
  5. Comment créer une Table dans 1 Bdd ACCESS avec Builder??
    Par makandja dans le forum C++Builder
    Réponses: 6
    Dernier message: 17/03/2004, 20h21

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