OVH Cloud OVH Cloud

Publibostage Word-Excel requête

5 réponses
Avatar
nuit6
Bonjour,
Je veux faire une fusion en limitant les donn=E9es en fonction d'un
crit=E8re. Par exemple, ne fusionner que les enregistrements dont la
colonne "Commentaire" n'est pas vide.

Dim chemin As String
Dim fichier As String
Dim cheminComplet As String

Set Doc =3D Dialogs(wdDialogFileOpen)
With Doc
.Name =3D "*.xls"
BClicked =3D .Display
End With
fichier =3D Doc.Name
chemin =3D CurDir
cheminComplet =3D chemin & "\" & fichier

ActiveDocument.MailMerge.DataSource.QueryString =3D _
"SELECT * FROM " & cheminComplet & " WHERE ((Commentaire
IS NOT NULL ))" _
& ""

Cette syntaxe fonctionnait tr=E8s bien en 97. La version 2003 affiche
une erreur 4198 sur la derni=E8re instruction.

Merci d'avance pour vos r=E9ponses.
Catherine

5 réponses

Avatar
Tisane
Bonjour Catherine

Je veux faire une fusion en limitant les données en fonction d'un
critère. Par exemple, ne fusionner que les enregistrements dont la
colonne "Commentaire" n'est pas vide.
Dim chemin As String
Dim fichier As String
Dim cheminComplet As String
Set Doc = Dialogs(wdDialogFileOpen)
With Doc
.Name = "*.xls"
BClicked = .Display
End With
fichier = Doc.Name
chemin = CurDir
cheminComplet = chemin & "" & fichier
ActiveDocument.MailMerge.DataSource.QueryString = _
"SELECT * FROM " & cheminComplet & " WHERE ((Commentaire
IS NOT NULL ))" _
& ""
Cette syntaxe fonctionnait très bien en 97. La version 2003 affiche
une erreur 4198 sur la dernière instruction.


La syntaxe semble toujours correcte. Fais un essai en imposant le protocole
DDE :
- menu Outils | Options, onglet [Général], cocher "Confirmation des
conversions lors de l'ouverture"
- lors de la fusion, sélectionne DDE (Échange dynamique de données)

--
Tisane

Avatar
Anacoluthe
Bonjour !

'' nous a écrit ...
"SELECT * FROM " & cheminComplet & " WHERE ((Commentaire
IS NOT NULL ))" _
& ""
Cette syntaxe fonctionnait très bien en 97. La version 2003 affiche
une erreur 4198 sur la dernière instruction.


Dans WD97 vous accédiez par défaut à vos données en DDE.
Ce n'est plus le cas depuis WD2002.
En DDE le nom du fichier Excel est accepté comme source directe car
seule la première feuille est prise en compte. Dans les autres
protocoles il vous faut être plus explicite
SELECT FROM 'MaPlageDeDonnées' WHERE ... après avoir renseigné
différemment OpenDataSource sur le classeur xls

Soit vous revenez à DDE (voir la ficelle voisine de Ciegalo dans
laquelle CAP2 a rappelé comment faire ) soit vous réécrivez complètement
votre connexion de publipostage et votre requête SQL en utilisant
une autre voie.

Anacoluthe
« Le but n'est pas le but, c'est la voie. »
- LAO TSEU

Avatar
Anacoluthe
Bonjour !

Oupss pardon, avais pas vu la réponse similaire de Tisane :-p

Anacoluthe
« Le but n'est pas le but, c'est la voie. »
- LAO TSEU
Avatar
JièL
Bonjoir(c) Anacoluthe

Le 21/07/2006 19:33 vous avez écrit ceci :
« Le but n'est pas le but, c'est la voie. »
- LAO TSEU


t'es sur que c'est pas zidane qu'a dis ça ? ;-))))))))

JièL z'y d'âne

Avatar
nuit6
Bonjour,
Merci pour vos réponses ! Malheureusement ça ne fonctionne pas. J'ai
indiqué True pour ConfirmConversions et ça ne change rien.

ActiveDocument.MailMerge.OpenDataSource Name:=cheminComplet _
, ConfirmConversions:=True, ReadOnly:úlse,
LinkToSource:=True, _
AddToRecentFiles:úlse, PasswordDocument:="",
PasswordTemplate:="", _
WritePasswordDocument:="", WritePasswordTemplate:="",
Revert:úlse, _
Format:=wdOpenFormatAuto, Connection:="fusion",
SQLStatement:="", _
SQLStatement1:=""