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 :

Ajouter une références dans VBA


Sujet :

VBA Access

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 125
    Points : 80
    Points
    80
    Par défaut Ajouter une références dans VBA
    Bonjour,

    Il n'est pas trop compliqué de rajouter une référence dans le code VBA après détection de la présence de par exemple MS Project.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    Public Function TestMSProject() As Boolean
     
        Dim objTmp  As Object
        Dim Ref     As Reference
     
    On Error GoTo Err_TestMSProject
     
        'Test la présence de MS Project et déclenche une erreur si absent
        Set objTmp = CreateObject("MSProject.Application")
        Set objTmp = Nothing
     
        'Test la présence de la référence MS Project
        For Each Ref In APPLICATION.References
            If Ref.NAME = "MSProject" Then
                TestMSProject = True
                GoTo Exit_TestMSProject
            End If
        Next Ref
     
        'Installe la référence MS Project
        References.AddFromFile ("C:\Program Files\Microsoft Office\Office\MSPRJ9.OLB") 
        ' ou \Office12\MSPRJ12.OLB pour la version 2007
        TestMSProject = True
     
    Exit_TestMSProject:
        Exit Function
     
    Err_TestMSProject:
     
        'Test la présence de la référence MS Project
        For Each Ref In APPLICATION.References
            'Supprime la référence MS Project
            If Ref.NAME = "MSProject" Then References.Remove References!MSProject
        Next Ref
        TestMSProject = False
        Resume Exit_TestMSProject
     
    End Function
    Ce code détecte la présence de MS Project 2000 (ou 2007) et ajoute le fichier OLB dans les références du code.

    MAIS... cela fonctionne si le code n'est pas compilé (mde)

    Quelqu'un peux me dire comment ajouter/supprimer une référence ou éviter que mon programme se plante si une référence à un programme absent est référencée dans mon fichier mde (compilé).

    Un grand merci,

    Philippe.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Je ne pense pas que ce soit possible dans un fichier MDE, car tu ne peux faire de modification ou de création avec celui-ci. Et entre autre Ajouter une référence par le code.

    Starec

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 125
    Points : 80
    Points
    80
    Par défaut
    Pour résumer :

    References.AddFromFile fonction dans un fichier mdb mais pas dans un fichier mde

    Y aurait-il une façon de ne pas faire planter mon code si une référence est absente ?
    Je compilerai donc avec la référence.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Re

    Pour finir, le code tel que tu le connais n'existe plus dans un fichier MDE, il est compilé.

    Starec

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 125
    Points : 80
    Points
    80
    Par défaut
    Y aurait-il une façon de ne pas faire planter mon code si une référence est absente ?
    Je compilerai donc avec la référence.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Re

    Il te suffit de mettre une gestion d'erreur quand tu fais appel à une référence.

    Starec

  7. #7
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 125
    Points : 80
    Points
    80
    Par défaut
    Le code plante dès le démarrage de l'application. Avant même d'utiliser le code MS Project.

  8. #8
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 125
    Points : 80
    Points
    80
    Par défaut
    Soyons compliqué là on l'on pourrait être simple :

    Je vais séparer mon code en deux dans deux applications distinctes. En démarrant la première je testerais dans la présence de MS Project (ou tout autre application ayant besoin d'une référence spécifique) et je démarre la seconde si elle est présente.
    Cela me permet de mettre les références dans la deuxième application et pas dans la première.

    Pas simple mais c'est tout ce que j'ai trouvé. Si quelqu'un voit mieux... bienvenue

    Philippe

  9. #9
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 125
    Points : 80
    Points
    80
    Par défaut
    Et çà marche

  10. #10
    Membre averti
    Directeur technique
    Inscrit en
    Novembre 2006
    Messages
    584
    Détails du profil
    Informations personnelles :
    Âge : 61

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 584
    Points : 403
    Points
    403
    Par défaut [2007]
    Bonjour,

    Moi, ce genre de pb, ça me fout en rogne.
    On ne va quand même pas se passer du mde pour une histoire référence...

    Ta solution est quand même bien compliquée. Si tu as plusieurs applis à tester tu vois le nombre de programmes qu'il faut aligner derrière...

    J'ai eu le problème avec outlook. J'ai ajouté msoutl.olb dans \Office12\ et ça roule. Pour l'instant.
    J'ai tout de même une erreur quand je liste mes références ( fonction GetReference trouvée ici): "La méthode FullPath de l'objet Référence a échoué". Mais ça ne me gène pas. Pour l'instant..

  11. #11
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 917
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 917
    Points : 4 821
    Points
    4 821
    Par défaut
    Moi je trouve que la démarche de DPhBxl est très intéressante
    Je vais séparer mon code en deux dans deux applications distinctes. En démarrant la première je testerais dans la présence de MS Project (ou tout autre application ayant besoin d'une référence spécifique) et je démarre la seconde si elle est présente.
    ... mais comme toi, tAKAmAkA, il m'arrive vraiment de pester contre cette gestion des références. En pretique, chez un client ou on a prévu de poser un RunTime avec un MDE, pour valider les references, il faut :
    intaller Access,
    installer le MDB
    valider les ref (en refaisant un MDE au passage).
    désinstaller le tout,
    installer le RT
    enfin le MDE
    Ca c'est de la productivité !

  12. #12
    Membre expérimenté

    Profil pro
    Inscrit en
    Mars 2006
    Messages
    1 350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 350
    Points : 1 701
    Points
    1 701
    Par défaut
    Bonjour,

    La réponse de Papy Turbo n'était pas en adéquation avec le sujet ici présent? :

    http://www.developpez.net/forums/sho...4&postcount=47

    Cordialement.

  13. #13
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 125
    Points : 80
    Points
    80
    Par défaut
    Cà marche pour la redistribution chez un copain, pas auprès de 1000 utilisateurs dans une société qui par sécurité ne permet pas le démarrage de fichiers auto-extractibles.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 19/05/2011, 23h31
  2. [OL-2003] ajout de référence dans le code VBA
    Par o.deb dans le forum VBA Outlook
    Réponses: 0
    Dernier message: 24/06/2010, 12h41
  3. [VB Sax] Ajouter une référence manuellement dans un macro *.bas
    Par Miles Raymond dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 24/04/2008, 09h31
  4. VBA : ajouter une valeur dans une liste déroulante
    Par remi59 dans le forum Access
    Réponses: 4
    Dernier message: 22/12/2005, 10h01
  5. Ajouter une référence dans un runtime
    Par rogger dans le forum Runtime
    Réponses: 13
    Dernier message: 07/12/2005, 17h20

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