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 :

Référence relative en VBA


Sujet :

VBA Access

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    423
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 423
    Points : 155
    Points
    155
    Par défaut Référence relative en VBA
    Bonjour à tous,

    Je développe sous Access 2003

    Mon problème est le suivant :
    J'ai une application qui fait du publipostage (word Access)
    Les données du publipostage : une requête
    L'application fonctionne, mais je voudrais qu'elle fonctionne avec les 3 versions de word suivant (97, 2000, 2003)
    Pour faire le lien avec word, j'utilise une référence qui change suivant la version de word installée sur la machine.
    Par exemple pour word 2000 (microsoft word 9.0 object Library)

    Peut-on paramaîtrer ces référence en VBA
    Si oui comment faire
    Je vourais un truc du genre :
    Choisir la version de word dans une liste déroulant

    Si quelqu'un a une idée merci

    Willy

  2. #2
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    Tu n'as pas besoin des références.
    Tu peux utiliser la technique dite du LateBinding.

    Comment ?
    En remplacant, par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim objWordApplication as Word.Application
    Set objWordApplication = New Word.Application
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim objWordApplication as Object
    Set objWordApplication = CreateObject("Word.Application")
    Avec le LateBinding, l'interpréteur VBA découvre, le plus tard possible le type d'objet qu'il va générer.
    La génération via le CreateObject va lire dans la base de registre pour trouver la classe de l'objet word référencé par défaut sur le poste (puisque dans la base de registre)
    Donc, cela implique que, quel que soit la version du logiciel installé, ca marchera

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    423
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 423
    Points : 155
    Points
    155
    Par défaut Précision
    Pour faire mon publipostage j'utilise le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim ObjWord As Word.Document
    Set ObjWord = GetObject(Var_Fichier_Pub, "Word.Document")
    Comment dois-je l'adapter ?
    Merci
    Willy

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    423
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 423
    Points : 155
    Points
    155
    Par défaut Précision
    J'ai modifié mon code :

    J'ai remplacé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim ObjWord As Word.Document
    par
    Dim ObjWord As object
    et j'ai rajouté une ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Objword = CreateObject("word.document")
    Mais je ne sais pas comment adapter ce bout de code qui pose problème

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Objword.MailMerge.Destination = wdSendToNewDocument
    C'est cette constante qui pose problème : wdSendToNewDocument

    Si vous avez une petite idée
    Merci
    Willy

  5. #5
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    regarde la valeur de wdSendToNewDocument


    Puisque tu n'as plus accès à la bibliothèque Word, les constatnes de word non plus n'existent plus.

    tu peux donc les recréer, dans ton programme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    const wdSendToNewDocument as long = 0

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    423
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 423
    Points : 155
    Points
    155
    Par défaut Merci
    Génial !
    ça fonctionne
    Merci

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

Discussions similaires

  1. référence CommandBar dans vba ?
    Par alexkickstand dans le forum VBA Access
    Réponses: 5
    Dernier message: 04/12/2014, 12h01
  2. Explications sur les références relatives LC
    Par Maxence45 dans le forum Excel
    Réponses: 6
    Dernier message: 05/11/2007, 00h10
  3. Référence relative à des cellules et performances
    Par Tententai dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 23/08/2007, 17h30
  4. référence relative à une cellule saisie
    Par Peanut dans le forum Excel
    Réponses: 14
    Dernier message: 13/07/2007, 15h15
  5. [Smarty] Référence relative aux libs de Smarty
    Par Mister Nono dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 29/12/2006, 18h39

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