Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Général VBA
Général VBA Forum général VBA . Pour les logiciels spécifiques (Access, Excel, Word, ...), postez dans les bons sous forums.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/05/2006, 11h29   #1
Rédacteur
 
Avatar de jacma
 
Inscription : juillet 2002
Messages : 601
Détails du profil
Informations personnelles :
Âge : 67

Informations forums :
Inscription : juillet 2002
Messages : 601
Points : 534
Points : 534
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 :
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
__________________
Praticiels: http://jacma.developpez.com.
jacma est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2006, 08h57   #2
Inactif
 
Étudiant
Inscription : mai 2006
Messages : 71
Détails du profil
Informations personnelles :
Âge : 26

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2006
Messages : 71
Points : 180
Points : 180
Par défaut attente de rep

aide pour lui SVP
pauletta22 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2006, 10h12   #3
Rédacteur
 
Avatar de jacma
 
Inscription : juillet 2002
Messages : 601
Détails du profil
Informations personnelles :
Âge : 67

Informations forums :
Inscription : juillet 2002
Messages : 601
Points : 534
Points : 534
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 :
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 :
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.
__________________
Praticiels: http://jacma.developpez.com.
jacma est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h55.


 
 
 
 
Partenaires

Hébergement Web