OVH Cloud OVH Cloud

Publipostage depuis Access

15 réponses
Avatar
Luis
Bonjour,
J'ai pr=E9par=E9 un Mod=E8le Word avec les champs

"Soci=E9t=E9"
"Adresse" etc....

Et depuis un formulaire en continu Access une commande=20
avec:


Dim W_App As Object
Set W_App =3D CreateObject("Word.Application")
Dim Db As DAO.Database
Dim RS As DAO.Recordset
Dim strSQL As String
Set Db =3D CurrentDb
strSQL =3D "SELECT NClient, [Raison sociale], ADRESSE,=20
NP, VILLE, Bcontact, Bd=E9partement FROM Clients WHERE=20
NClient =3D" & Forms![PROSPECTSELECTST].NCLIENT

Set RS =3D Db.OpenRecordset(strSQL)
RS.MoveFirst
With W_App
.Visible =3D True
Do Until RS.EOF
.Documents.Open ("c:\WINDOWS\Bureau\Mails.dot")
.ActiveDocument.Bookmarks("Soci=E9t=E9").Select
.Selection.InsertAfter RS.Fields("RAISON=20
SOCIALE")
.ActiveDocument.Bookmarks("ADRESSE").Select
.Selection.InsertAfter RS.Fields("ADRESSE")
.ActiveDocument.Bookmarks("NP").Select
.Selection.InsertAfter RS.Fields("NP")
.ActiveDocument.Bookmarks("Ville").Select
.Selection.InsertAfter RS.Fields("Ville")
.ActiveDocument.Bookmarks("Bcontact").Select
.Selection.InsertAfter RS.Fields("Bcontact")
.ActiveDocument.Bookmarks
("Bd=E9partement").Select
.Selection.InsertAfter RS.Fields
("Bd=E9partement")
=20
.ActiveDocument.PrintOut False
.ActiveDocument.Close wdDoNotSaveChanges
RS.MoveNext
Loop
RS.Close
Set RS =3D Nothing
Set Db =3D Nothing
.Quit
End With
Set W_App =3D Nothing

Probl=E8mes:
1. Il n'y a qu'un seul client qui est imprim=E9
2. les Champs ne viennet pas dans les=20
champs "soci=E9t=E9"; "ADRESSE" etc... du document Word mais=20
au dessus.
Savez-vous comment avoir tous les clients et pas un seul=20
et comment faire pour que les champs se mettent la ou ils=20
doivent.
Luis

5 réponses

1 2
Avatar
Raymond [mvp]
personnellement je ne vois pas d'autres solutions ou alors :
placer les clients du formulaire dans une zone liste, les sélectionner tous
(en boucle), et pour chaque enregistrement de la requête passer le numéro
client à une fonction pour comparer avec la liste.
Voir la fonction sur la page :
http://access.vba.free.fr/selection_multiple.htm
mais attention à la performance qui sera médiocre.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Luis" a écrit dans le message de
news: 1b3001c4b5fa$a3b11740$
Bonjour Raymond,
T'es sûr qu'il n'y a pas moyen d'extraire les données
depuis le formulaire filtré?
Par ce que je t'explique:
Je viens de vérifier j'ai 1'200 sélections possibles
depuis le formulaire de tri et j'ai encore 4 autre
formulaire de tri aussi bourrés que ça.
De la façon dont tu me l'explique ça équivaut à
recommenrcer tout le travail de sélection.
J'en ai pour des années.
De plus la methode par select case est une méthode que je
trouve très simple.
Malgré tout si tu as une idée...
Merci tout de même.
Luis
Avatar
Ilan
Bonjour Luis,

Pour recuperer les enregistrements de ton formulaire
essaie en remplacant la ligne
Set RSÛ.Openrecordset(strSQL) par
Set RS=Forms![PROSPECTSELECTST].RecordSet



Dim W_App As Object
Set W_App = CreateObject("Word.Application")
Dim Db As DAO.Database
Dim RS As DAO.Recordset
Dim strSQL As String
Set Db = CurrentDb
Set RS=Forms![PROSPECTSELECTST].RecordSet
RS.MoveFirst

With W_App
.Visible = True
Do Until RS.EOF
.Documents.Open ("c:WINDOWSBureauMails.dot")
.ActiveDocument.Bookmarks("Société").Select
.Selection.InsertAfter RS.Fields("RAISON
SOCIALE")
.ActiveDocument.Bookmarks("ADRESSE").Select
.Selection.InsertAfter RS.Fields("ADRESSE")
.ActiveDocument.Bookmarks("NP").Select
.Selection.InsertAfter RS.Fields("NP")
.ActiveDocument.Bookmarks("Ville").Select
.Selection.InsertAfter RS.Fields("Ville")
.ActiveDocument.Bookmarks("Bcontact").Select
.Selection.InsertAfter RS.Fields("Bcontact")
.ActiveDocument.Bookmarks
("Bdépartement").Select
.Selection.InsertAfter RS.Fields
("Bdépartement")

.ActiveDocument.PrintOut False
.ActiveDocument.Close wdDoNotSaveChanges
RS.MoveNext
Loop
RS.Close
Set RS = Nothing
Set Db = Nothing
.Quit
End With
Set W_App = Nothing

Problèmes:
1. Il n'y a qu'un seul client qui est imprimé
2. les Champs ne viennet pas dans les
champs "société"; "ADRESSE" etc... du document Word mais
au dessus.
Savez-vous comment avoir tous les clients et pas un seul
et comment faire pour que les champs se mettent la ou ils
doivent.
Luis





Développer toutRéduire tout

Gérez votre profil
©2004 Microsoft Corporation. Tous droits réservés. Conditions d'utilisation
|Marques |Confidentialité |A propos
Avatar
Raymond [mvp]
Bonsoir.

c'est la meilleure solution, en effet. Nous nous étions égarés dans des
chemins de traverse. faut dire que notre ami Luis ne dit jamais tout au
départ et après quelques posts sur plusieurs heures, le problème de départ
n'est plus dans les esprits.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Ilan" a écrit dans le message de news:

Bonjour Luis,

Pour recuperer les enregistrements de ton formulaire
essaie en remplacant la ligne
Set RSÛ.Openrecordset(strSQL) par
Set RS=Forms![PROSPECTSELECTST].RecordSet


Avatar
Luis
He!!! Super je vais essayer.
Merci Ilan, je te dirais comment ça marche.
Luis
-----Message d'origine-----
Bonjour Luis,

Pour recuperer les enregistrements de ton formulaire
essaie en remplacant la ligne
Set RSÛ.Openrecordset(strSQL) par
Set RS=Forms![PROSPECTSELECTST].RecordSet



Dim W_App As Object
Set W_App = CreateObject("Word.Application")
Dim Db As DAO.Database
Dim RS As DAO.Recordset
Dim strSQL As String
Set Db = CurrentDb
Set RS=Forms![PROSPECTSELECTST].RecordSet
RS.MoveFirst

With W_App
.Visible = True
Do Until RS.EOF
.Documents.Open
("c:WINDOWSBureauMails.dot")

.ActiveDocument.Bookmarks("Société").Select
.Selection.InsertAfter RS.Fields("RAISON
SOCIALE")
.ActiveDocument.Bookmarks("ADRESSE").Select
.Selection.InsertAfter RS.Fields("ADRESSE")
.ActiveDocument.Bookmarks("NP").Select
.Selection.InsertAfter RS.Fields("NP")
.ActiveDocument.Bookmarks("Ville").Select
.Selection.InsertAfter RS.Fields("Ville")
.ActiveDocument.Bookmarks("Bcontact").Select
.Selection.InsertAfter RS.Fields("Bcontact")
.ActiveDocument.Bookmarks
("Bdépartement").Select
.Selection.InsertAfter RS.Fields
("Bdépartement")

.ActiveDocument.PrintOut False
.ActiveDocument.Close wdDoNotSaveChanges
RS.MoveNext
Loop
RS.Close
Set RS = Nothing
Set Db = Nothing
.Quit
End With
Set W_App = Nothing

Problèmes:
1. Il n'y a qu'un seul client qui est imprimé
2. les Champs ne viennet pas dans les
champs "société"; "ADRESSE" etc... du document Word
mais

au dessus.
Savez-vous comment avoir tous les clients et pas un seul
et comment faire pour que les champs se mettent la ou ils
doivent.
Luis





Développer toutRéduire tout

Gérez votre profil
©2004 Microsoft Corporation. Tous droits réservés.
Conditions d'utilisation

|Marques |Confidentialité |A propos



.



Avatar
Luis
Bonjour Raymond,
Je ne sais pas pourquoi, mais tu as raison, je dois avoir
de la peine à être concis ce qui trouble.
Je te remercie.

Luis
-----Message d'origine-----
Bonsoir.

c'est la meilleure solution, en effet. Nous nous étions
égarés dans des

chemins de traverse. faut dire que notre ami Luis ne dit
jamais tout au

départ et après quelques posts sur plusieurs heures, le
problème de départ

n'est plus dans les esprits.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Ilan" a écrit dans le
message de news:


Bonjour Luis,

Pour recuperer les enregistrements de ton formulaire
essaie en remplacant la ligne
Set RSÛ.Openrecordset(strSQL) par
Set RS=Forms![PROSPECTSELECTST].RecordSet



.




1 2