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
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
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" <anonymous@discussions.microsoft.com> a écrit dans le message de
news: 1b3001c4b5fa$a3b11740$a301280a@phx.gbl...
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
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
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
.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
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
.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
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
.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
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
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" <Ilan@discussions.microsoft.com> a écrit dans le message de news:
051091A8-DCEF-4426-9216-4B2D223795DD@microsoft.com...
Bonjour Luis,
Pour recuperer les enregistrements de ton formulaire
essaie en remplacant la ligne
Set RSÛ.Openrecordset(strSQL) par
Set RS=Forms![PROSPECTSELECTST].RecordSet
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
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.PrintOut False .ActiveDocument.Close wdDoNotSaveChanges RS.MoveNext Loop RS.Close Set RS = Nothing Set Db = Nothing .Quit End With Set W_App = Nothing
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=Db.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.PrintOut False
.ActiveDocument.Close wdDoNotSaveChanges
RS.MoveNext
Loop
RS.Close
Set RS = Nothing
Set Db = Nothing
.Quit
End With
Set W_App = Nothing
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.PrintOut False .ActiveDocument.Close wdDoNotSaveChanges RS.MoveNext Loop RS.Close Set RS = Nothing Set Db = Nothing .Quit End With Set W_App = Nothing
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
.
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" <Ilan@discussions.microsoft.com> a écrit dans le
message de news:
Pour recuperer les enregistrements de ton formulaire
essaie en remplacant la ligne
Set RS=Db.Openrecordset(strSQL) par
Set RS=Forms![PROSPECTSELECTST].RecordSet
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