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 Discussion :

[VB6][VBE][SQL][...]Objets Command avec MailMerge


Sujet :

VBA

  1. #1
    Rédacteur
    Avatar de jacma
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    612
    Détails du profil
    Informations personnelles :
    Âge : 79
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 612
    Points : 1 241
    Points
    1 241
    Par défaut [VB6][VBE][SQL][...]Objets Command avec MailMerge
    Bonjour

    Est-il possible avec mailmerge d'utiliser les objets Command d'un DataEnvironment en tant que DataSource. Le code suivant me renvoit l'erreur 5922 (Word ne peut ouvrir la base de donnée)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    .OpenDataSource Name:=App.Path & "\Clients.mdb", _
            sqlstatement:="SHAPE {SELECT * FROM `Clients`}  AS Command1 " & _
                          "APPEND (( SHAPE {SELECT * FROM `Relations`}  AS Command2 " & _
                          "APPEND ({SELECT * FROM `Mailings`}  AS Command3 ", _
            sqlstatement1:="RELATE 'CodeMailingR' TO 'CodeMailing') AS Command3) AS Command2 " & _
                          "RELATE 'CodeClient' TO 'CodeClientR') AS Command2"
    Merci

  2. #2
    Inactif
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 71
    Points : 215
    Points
    215
    Par défaut attente de rep
    aide pour lui SVP

  3. #3
    Rédacteur
    Avatar de jacma
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    612
    Détails du profil
    Informations personnelles :
    Âge : 79
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 612
    Points : 1 241
    Points
    1 241
    Par défaut
    Bonjour

    Si tu relances ce sujet, je pense que tu as besoin d'une solution. Ce qui suit ne répond pas vraiment à ma question mais m'a permis de contourner le problème. Cela passe par la création d'une table temporaire avec une objet Command d'un DataEnvironment.

    Le SQL obtenu automatiquement avec le générateur SQL de l'objet Command donne ce qui suit. L'utilisation du dit générateur devrait te simplifier notablement la démarche.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT Clients.*, Mailings.CorpsMailing AS CorpsMailing, _ 
    Relations.CodeMailingR AS Expr2 INTO TableTemp _ 
    FROM Relations, Mailings, Clients _ 
    WHERE Relations.CodeMailingR = Mailings.CodeMailing AND _ 
    Relations.CodeClientR = Clients.CodeClient AND (Relations.CodeMailingR = NumEC)
    La table temporaire ainsi créée contient des informations issues de trois tables (deux tables avec une liaison de plusieurs à plusieurs, donc avec une table de liaison supplémentaire. La table Mailings contient des informations sur le mailing (numéro, sujet, date etc...), la table Clients des infos sur les clients concernés, et la table Relation sert à établir les relation de plusieurs à plusieurs(un client peut recevoir plusieurs mailing et un mailing est adressé à plusieurs clients).

    Le code suivant crée la table temploraire et définit les paramètres de mailMerge.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    DataEnvironment4.Command1 (intNumMail)  'Création de la table temporaire
    With InstanceWord.ActiveDocument.MailMerge
      Connection:="TABLE TableTemp", SQLStatement:="SELECT * From [TableTemp]"
      .OpenDataSource Name:=App.Path & "\Clients.mdb", _ 
          Connection:="TABLE TableTemp", SQLStatement:="SELECT * From [TableTemp]"
     ...
    J'espère que cela te servira.

Discussions similaires

  1. SQl via VBA: problème avec objet "Command"
    Par MGA_macro dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 14/05/2014, 23h26
  2. [VB6]Colorier une zone (carrée) avec l'objet printer.
    Par méphistopheles dans le forum VB 6 et antérieur
    Réponses: 14
    Dernier message: 24/05/2006, 22h03
  3. [VB6][VBE]Source MailMerge
    Par jacma dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/05/2006, 13h09
  4. [VB6]Paramètre facultatif pour un objet Command
    Par jacma dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 16/04/2006, 02h40
  5. Réponses: 3
    Dernier message: 11/01/2005, 09h20

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