Bonjour, suite à la question soulever sur le publipostage pas de
probleme cela fonctionne tres bien.
Le seul pb mais un gros, c'est que j'ai une table formation, et une
autre participantsf. J'ai soulever le pb hier (22/12/04, pb de
requette) je voudrais obtenir une seule ligne pour le N°formation.
Voici mon code de publipostage:
Private Sub Commande0_Click()
Dim W_App As Object
Set W_App = CreateObject("Word.Application")
Dim Db As DAO.Database
Dim Rst As DAO.Recordset
Dim Strsql As String
Set Db = CurrentDb
Strsql = "SELECT Formation.N°Formation, Formation.RS,
Formation.Adr1,
Formation.Adr2, Formation.cp, Formation.Ville, TypeFormation.LibelleF,
ParticipantF.Nom, ParticipantF.Prénom, ParticipantF.Emploi FROM
(Formation INNER JOIN TypeFormation ON Formation.Type > TypeFormation.Type) INNER JOIN ParticipantF ON Formation.N°Formation
= ParticipantF.N°Formation WHERE ((Formation.N°Formation)= " &
Me.N°Formation & ");"
Set Rst = Db.OpenRecordset(Strsql)
If Rst.BOF Then GoTo Exit_Sub
With W_App
.Visible = True
Do Until Rst.EOF
.Documents.Open ("C:convention.doc")
.ActiveDocument.Bookmarks("RS").Select
.Selection.InsertAfter Rst.Fields("RS")
.ActiveDocument.Bookmarks("ADR1").Select
.Selection.InsertAfter Nz(Rst.Fields("ADR1"), "")
.ActiveDocument.Bookmarks("ADR2").Select
.Selection.InsertAfter Nz(Rst.Fields("adr2"), "")
.ActiveDocument.Bookmarks("cp").Select
.Selection.InsertAfter Nz(Rst.Fields("cp"), "")
.ActiveDocument.Bookmarks("ville").Select
.Selection.InsertAfter Nz(Rst.Fields("ville"), "")
.ActiveDocument.Bookmarks("IntituleF").Select
.Selection.InsertAfter Nz(Rst.Fields("LibelleF"), "")
.ActiveDocument.Bookmarks("nom1").Select
.Selection.InsertAfter Nz(Rst.Fields("nom"), "")
.ActiveDocument.Bookmarks("prenom1").Select
.Selection.InsertAfter Nz(Rst.Fields("prénom"), "")
.ActiveDocument.Bookmarks("fonction1").Select
.Selection.InsertAfter Nz(Rst.Fields("Emploi"), "")
.ActiveDocument.Bookmarks("nom2").Select
.Selection.InsertAfter Nz(Rst.Fields("nom2"), "")
.ActiveDocument.Bookmarks("prenom2").Select
.Selection.InsertAfter Nz(Rst.Fields("prenom2"), "")
.ActiveDocument.Bookmarks("fonction2").Select
.Selection.InsertAfter Nz(Rst.Fields("emploi2"), "")
.ActiveDocument.Bookmarks("nom3").Select
.Selection.InsertAfter Nz(Rst.Fields("nom3"), "")
.ActiveDocument.Bookmarks("prenom3").Select
.Selection.InsertAfter Nz(Rst.Fields("prenom3"), "")
.ActiveDocument.Bookmarks("fonction3").Select
.Selection.InsertAfter Nz(Rst.Fields("emploi3"), "")
.ActiveDocument.Bookmarks("nom4").Select
.Selection.InsertAfter Nz(Rst.Fields("nom4"), "")
.ActiveDocument.Bookmarks("prenom4").Select
.Selection.InsertAfter Nz(Rst.Fields("prenom4"), "")
.ActiveDocument.Bookmarks("fonction4").Select
.Selection.InsertAfter Nz(Rst.Fields("emploi4"), "")
.ActiveDocument.PrintPreview: Stop
.ActiveDocument.PrintOut False
.ActiveDocument.Close wdDoNotSaveChanges
Rst.MoveNext
Loop
End With
Exit_Sub:
Rst.Close
Set Rst = Nothing
Set Db = Nothing
W_App.Quit
Set W_App = Nothing
End Sub
Peut-on afficher Nom2 , prenom2,...... dans le document word ?
Si on ne peut pas avoir c'est champs la sans une requete, peut on
faire un boucle a l'interieur de mon code qui me permeterais de
modififier la valeur des champs nom, prenom, emploi par mom1,
prenom1, fonction1, nom2, prenom2, fonction2....(signet de word).
Peux tu m'aiguiller?
Merci pour tes réponses.
Bonne apres-midi
@+
Yannick
Bonjour, suite à la question soulever sur le publipostage pas de
probleme cela fonctionne tres bien.
Le seul pb mais un gros, c'est que j'ai une table formation, et une
autre participantsf. J'ai soulever le pb hier (22/12/04, pb de
requette) je voudrais obtenir une seule ligne pour le N°formation.
Voici mon code de publipostage:
Private Sub Commande0_Click()
Dim W_App As Object
Set W_App = CreateObject("Word.Application")
Dim Db As DAO.Database
Dim Rst As DAO.Recordset
Dim Strsql As String
Set Db = CurrentDb
Strsql = "SELECT Formation.N°Formation, Formation.RS,
Formation.Adr1,
Formation.Adr2, Formation.cp, Formation.Ville, TypeFormation.LibelleF,
ParticipantF.Nom, ParticipantF.Prénom, ParticipantF.Emploi FROM
(Formation INNER JOIN TypeFormation ON Formation.Type > TypeFormation.Type) INNER JOIN ParticipantF ON Formation.N°Formation
= ParticipantF.N°Formation WHERE ((Formation.N°Formation)= " &
Me.N°Formation & ");"
Set Rst = Db.OpenRecordset(Strsql)
If Rst.BOF Then GoTo Exit_Sub
With W_App
.Visible = True
Do Until Rst.EOF
.Documents.Open ("C:convention.doc")
.ActiveDocument.Bookmarks("RS").Select
.Selection.InsertAfter Rst.Fields("RS")
.ActiveDocument.Bookmarks("ADR1").Select
.Selection.InsertAfter Nz(Rst.Fields("ADR1"), "")
.ActiveDocument.Bookmarks("ADR2").Select
.Selection.InsertAfter Nz(Rst.Fields("adr2"), "")
.ActiveDocument.Bookmarks("cp").Select
.Selection.InsertAfter Nz(Rst.Fields("cp"), "")
.ActiveDocument.Bookmarks("ville").Select
.Selection.InsertAfter Nz(Rst.Fields("ville"), "")
.ActiveDocument.Bookmarks("IntituleF").Select
.Selection.InsertAfter Nz(Rst.Fields("LibelleF"), "")
.ActiveDocument.Bookmarks("nom1").Select
.Selection.InsertAfter Nz(Rst.Fields("nom"), "")
.ActiveDocument.Bookmarks("prenom1").Select
.Selection.InsertAfter Nz(Rst.Fields("prénom"), "")
.ActiveDocument.Bookmarks("fonction1").Select
.Selection.InsertAfter Nz(Rst.Fields("Emploi"), "")
.ActiveDocument.Bookmarks("nom2").Select
.Selection.InsertAfter Nz(Rst.Fields("nom2"), "")
.ActiveDocument.Bookmarks("prenom2").Select
.Selection.InsertAfter Nz(Rst.Fields("prenom2"), "")
.ActiveDocument.Bookmarks("fonction2").Select
.Selection.InsertAfter Nz(Rst.Fields("emploi2"), "")
.ActiveDocument.Bookmarks("nom3").Select
.Selection.InsertAfter Nz(Rst.Fields("nom3"), "")
.ActiveDocument.Bookmarks("prenom3").Select
.Selection.InsertAfter Nz(Rst.Fields("prenom3"), "")
.ActiveDocument.Bookmarks("fonction3").Select
.Selection.InsertAfter Nz(Rst.Fields("emploi3"), "")
.ActiveDocument.Bookmarks("nom4").Select
.Selection.InsertAfter Nz(Rst.Fields("nom4"), "")
.ActiveDocument.Bookmarks("prenom4").Select
.Selection.InsertAfter Nz(Rst.Fields("prenom4"), "")
.ActiveDocument.Bookmarks("fonction4").Select
.Selection.InsertAfter Nz(Rst.Fields("emploi4"), "")
.ActiveDocument.PrintPreview: Stop
.ActiveDocument.PrintOut False
.ActiveDocument.Close wdDoNotSaveChanges
Rst.MoveNext
Loop
End With
Exit_Sub:
Rst.Close
Set Rst = Nothing
Set Db = Nothing
W_App.Quit
Set W_App = Nothing
End Sub
Peut-on afficher Nom2 , prenom2,...... dans le document word ?
Si on ne peut pas avoir c'est champs la sans une requete, peut on
faire un boucle a l'interieur de mon code qui me permeterais de
modififier la valeur des champs nom, prenom, emploi par mom1,
prenom1, fonction1, nom2, prenom2, fonction2....(signet de word).
Peux tu m'aiguiller?
Merci pour tes réponses.
Bonne apres-midi
@+
Yannick
Bonjour, suite à la question soulever sur le publipostage pas de
probleme cela fonctionne tres bien.
Le seul pb mais un gros, c'est que j'ai une table formation, et une
autre participantsf. J'ai soulever le pb hier (22/12/04, pb de
requette) je voudrais obtenir une seule ligne pour le N°formation.
Voici mon code de publipostage:
Private Sub Commande0_Click()
Dim W_App As Object
Set W_App = CreateObject("Word.Application")
Dim Db As DAO.Database
Dim Rst As DAO.Recordset
Dim Strsql As String
Set Db = CurrentDb
Strsql = "SELECT Formation.N°Formation, Formation.RS,
Formation.Adr1,
Formation.Adr2, Formation.cp, Formation.Ville, TypeFormation.LibelleF,
ParticipantF.Nom, ParticipantF.Prénom, ParticipantF.Emploi FROM
(Formation INNER JOIN TypeFormation ON Formation.Type > TypeFormation.Type) INNER JOIN ParticipantF ON Formation.N°Formation
= ParticipantF.N°Formation WHERE ((Formation.N°Formation)= " &
Me.N°Formation & ");"
Set Rst = Db.OpenRecordset(Strsql)
If Rst.BOF Then GoTo Exit_Sub
With W_App
.Visible = True
Do Until Rst.EOF
.Documents.Open ("C:convention.doc")
.ActiveDocument.Bookmarks("RS").Select
.Selection.InsertAfter Rst.Fields("RS")
.ActiveDocument.Bookmarks("ADR1").Select
.Selection.InsertAfter Nz(Rst.Fields("ADR1"), "")
.ActiveDocument.Bookmarks("ADR2").Select
.Selection.InsertAfter Nz(Rst.Fields("adr2"), "")
.ActiveDocument.Bookmarks("cp").Select
.Selection.InsertAfter Nz(Rst.Fields("cp"), "")
.ActiveDocument.Bookmarks("ville").Select
.Selection.InsertAfter Nz(Rst.Fields("ville"), "")
.ActiveDocument.Bookmarks("IntituleF").Select
.Selection.InsertAfter Nz(Rst.Fields("LibelleF"), "")
.ActiveDocument.Bookmarks("nom1").Select
.Selection.InsertAfter Nz(Rst.Fields("nom"), "")
.ActiveDocument.Bookmarks("prenom1").Select
.Selection.InsertAfter Nz(Rst.Fields("prénom"), "")
.ActiveDocument.Bookmarks("fonction1").Select
.Selection.InsertAfter Nz(Rst.Fields("Emploi"), "")
.ActiveDocument.Bookmarks("nom2").Select
.Selection.InsertAfter Nz(Rst.Fields("nom2"), "")
.ActiveDocument.Bookmarks("prenom2").Select
.Selection.InsertAfter Nz(Rst.Fields("prenom2"), "")
.ActiveDocument.Bookmarks("fonction2").Select
.Selection.InsertAfter Nz(Rst.Fields("emploi2"), "")
.ActiveDocument.Bookmarks("nom3").Select
.Selection.InsertAfter Nz(Rst.Fields("nom3"), "")
.ActiveDocument.Bookmarks("prenom3").Select
.Selection.InsertAfter Nz(Rst.Fields("prenom3"), "")
.ActiveDocument.Bookmarks("fonction3").Select
.Selection.InsertAfter Nz(Rst.Fields("emploi3"), "")
.ActiveDocument.Bookmarks("nom4").Select
.Selection.InsertAfter Nz(Rst.Fields("nom4"), "")
.ActiveDocument.Bookmarks("prenom4").Select
.Selection.InsertAfter Nz(Rst.Fields("prenom4"), "")
.ActiveDocument.Bookmarks("fonction4").Select
.Selection.InsertAfter Nz(Rst.Fields("emploi4"), "")
.ActiveDocument.PrintPreview: Stop
.ActiveDocument.PrintOut False
.ActiveDocument.Close wdDoNotSaveChanges
Rst.MoveNext
Loop
End With
Exit_Sub:
Rst.Close
Set Rst = Nothing
Set Db = Nothing
W_App.Quit
Set W_App = Nothing
End Sub
Peut-on afficher Nom2 , prenom2,...... dans le document word ?
Si on ne peut pas avoir c'est champs la sans une requete, peut on
faire un boucle a l'interieur de mon code qui me permeterais de
modififier la valeur des champs nom, prenom, emploi par mom1,
prenom1, fonction1, nom2, prenom2, fonction2....(signet de word).
Peux tu m'aiguiller?
Merci pour tes réponses.
Bonne apres-midi
@+
Yannick
Bonjour, suite à la question soulever sur le publipostage pas de
probleme cela fonctionne tres bien.
Le seul pb mais un gros, c'est que j'ai une table formation, et une
autre participantsf. J'ai soulever le pb hier (22/12/04, pb de
requette) je voudrais obtenir une seule ligne pour le N°formation.
Voici mon code de publipostage:
Private Sub Commande0_Click()
Dim W_App As Object
Set W_App = CreateObject("Word.Application")
Dim Db As DAO.Database
Dim Rst As DAO.Recordset
Dim Strsql As String
Set Db = CurrentDb
Strsql = "SELECT Formation.N°Formation, Formation.RS,
Formation.Adr1,
Formation.Adr2, Formation.cp, Formation.Ville, TypeFormation.LibelleF,
ParticipantF.Nom, ParticipantF.Prénom, ParticipantF.Emploi FROM
(Formation INNER JOIN TypeFormation ON Formation.Type > TypeFormation.Type) INNER JOIN ParticipantF ON Formation.N°Formation
= ParticipantF.N°Formation WHERE ((Formation.N°Formation)= " &
Me.N°Formation & ");"
Set Rst = Db.OpenRecordset(Strsql)
If Rst.BOF Then GoTo Exit_Sub
With W_App
.Visible = True
Do Until Rst.EOF
.Documents.Open ("C:convention.doc")
.ActiveDocument.Bookmarks("RS").Select
.Selection.InsertAfter Rst.Fields("RS")
.ActiveDocument.Bookmarks("ADR1").Select
.Selection.InsertAfter Nz(Rst.Fields("ADR1"), "")
.ActiveDocument.Bookmarks("ADR2").Select
.Selection.InsertAfter Nz(Rst.Fields("adr2"), "")
.ActiveDocument.Bookmarks("cp").Select
.Selection.InsertAfter Nz(Rst.Fields("cp"), "")
.ActiveDocument.Bookmarks("ville").Select
.Selection.InsertAfter Nz(Rst.Fields("ville"), "")
.ActiveDocument.Bookmarks("IntituleF").Select
.Selection.InsertAfter Nz(Rst.Fields("LibelleF"), "")
.ActiveDocument.Bookmarks("nom1").Select
.Selection.InsertAfter Nz(Rst.Fields("nom"), "")
.ActiveDocument.Bookmarks("prenom1").Select
.Selection.InsertAfter Nz(Rst.Fields("prénom"), "")
.ActiveDocument.Bookmarks("fonction1").Select
.Selection.InsertAfter Nz(Rst.Fields("Emploi"), "")
.ActiveDocument.Bookmarks("nom2").Select
.Selection.InsertAfter Nz(Rst.Fields("nom2"), "")
.ActiveDocument.Bookmarks("prenom2").Select
.Selection.InsertAfter Nz(Rst.Fields("prenom2"), "")
.ActiveDocument.Bookmarks("fonction2").Select
.Selection.InsertAfter Nz(Rst.Fields("emploi2"), "")
.ActiveDocument.Bookmarks("nom3").Select
.Selection.InsertAfter Nz(Rst.Fields("nom3"), "")
.ActiveDocument.Bookmarks("prenom3").Select
.Selection.InsertAfter Nz(Rst.Fields("prenom3"), "")
.ActiveDocument.Bookmarks("fonction3").Select
.Selection.InsertAfter Nz(Rst.Fields("emploi3"), "")
.ActiveDocument.Bookmarks("nom4").Select
.Selection.InsertAfter Nz(Rst.Fields("nom4"), "")
.ActiveDocument.Bookmarks("prenom4").Select
.Selection.InsertAfter Nz(Rst.Fields("prenom4"), "")
.ActiveDocument.Bookmarks("fonction4").Select
.Selection.InsertAfter Nz(Rst.Fields("emploi4"), "")
.ActiveDocument.PrintPreview: Stop
.ActiveDocument.PrintOut False
.ActiveDocument.Close wdDoNotSaveChanges
Rst.MoveNext
Loop
End With
Exit_Sub:
Rst.Close
Set Rst = Nothing
Set Db = Nothing
W_App.Quit
Set W_App = Nothing
End Sub
Peut-on afficher Nom2 , prenom2,...... dans le document word ?
Si on ne peut pas avoir c'est champs la sans une requete, peut on
faire un boucle a l'interieur de mon code qui me permeterais de
modififier la valeur des champs nom, prenom, emploi par mom1,
prenom1, fonction1, nom2, prenom2, fonction2....(signet de word).
Peux tu m'aiguiller?
Merci pour tes réponses.
Bonne apres-midi
@+
Yannick
Bonjour, suite à la question soulever sur le publipostage pas de
probleme cela fonctionne tres bien.
Le seul pb mais un gros, c'est que j'ai une table formation, et une
autre participantsf. J'ai soulever le pb hier (22/12/04, pb de
requette) je voudrais obtenir une seule ligne pour le N°formation.
Voici mon code de publipostage:
Private Sub Commande0_Click()
Dim W_App As Object
Set W_App = CreateObject("Word.Application")
Dim Db As DAO.Database
Dim Rst As DAO.Recordset
Dim Strsql As String
Set Db = CurrentDb
Strsql = "SELECT Formation.N°Formation, Formation.RS,
Formation.Adr1,
Formation.Adr2, Formation.cp, Formation.Ville, TypeFormation.LibelleF,
ParticipantF.Nom, ParticipantF.Prénom, ParticipantF.Emploi FROM
(Formation INNER JOIN TypeFormation ON Formation.Type > TypeFormation.Type) INNER JOIN ParticipantF ON Formation.N°Formation
= ParticipantF.N°Formation WHERE ((Formation.N°Formation)= " &
Me.N°Formation & ");"
Set Rst = Db.OpenRecordset(Strsql)
If Rst.BOF Then GoTo Exit_Sub
With W_App
.Visible = True
Do Until Rst.EOF
.Documents.Open ("C:convention.doc")
.ActiveDocument.Bookmarks("RS").Select
.Selection.InsertAfter Rst.Fields("RS")
.ActiveDocument.Bookmarks("ADR1").Select
.Selection.InsertAfter Nz(Rst.Fields("ADR1"), "")
.ActiveDocument.Bookmarks("ADR2").Select
.Selection.InsertAfter Nz(Rst.Fields("adr2"), "")
.ActiveDocument.Bookmarks("cp").Select
.Selection.InsertAfter Nz(Rst.Fields("cp"), "")
.ActiveDocument.Bookmarks("ville").Select
.Selection.InsertAfter Nz(Rst.Fields("ville"), "")
.ActiveDocument.Bookmarks("IntituleF").Select
.Selection.InsertAfter Nz(Rst.Fields("LibelleF"), "")
.ActiveDocument.Bookmarks("nom1").Select
.Selection.InsertAfter Nz(Rst.Fields("nom"), "")
.ActiveDocument.Bookmarks("prenom1").Select
.Selection.InsertAfter Nz(Rst.Fields("prénom"), "")
.ActiveDocument.Bookmarks("fonction1").Select
.Selection.InsertAfter Nz(Rst.Fields("Emploi"), "")
.ActiveDocument.Bookmarks("nom2").Select
.Selection.InsertAfter Nz(Rst.Fields("nom2"), "")
.ActiveDocument.Bookmarks("prenom2").Select
.Selection.InsertAfter Nz(Rst.Fields("prenom2"), "")
.ActiveDocument.Bookmarks("fonction2").Select
.Selection.InsertAfter Nz(Rst.Fields("emploi2"), "")
.ActiveDocument.Bookmarks("nom3").Select
.Selection.InsertAfter Nz(Rst.Fields("nom3"), "")
.ActiveDocument.Bookmarks("prenom3").Select
.Selection.InsertAfter Nz(Rst.Fields("prenom3"), "")
.ActiveDocument.Bookmarks("fonction3").Select
.Selection.InsertAfter Nz(Rst.Fields("emploi3"), "")
.ActiveDocument.Bookmarks("nom4").Select
.Selection.InsertAfter Nz(Rst.Fields("nom4"), "")
.ActiveDocument.Bookmarks("prenom4").Select
.Selection.InsertAfter Nz(Rst.Fields("prenom4"), "")
.ActiveDocument.Bookmarks("fonction4").Select
.Selection.InsertAfter Nz(Rst.Fields("emploi4"), "")
.ActiveDocument.PrintPreview: Stop
.ActiveDocument.PrintOut False
.ActiveDocument.Close wdDoNotSaveChanges
Rst.MoveNext
Loop
End With
Exit_Sub:
Rst.Close
Set Rst = Nothing
Set Db = Nothing
W_App.Quit
Set W_App = Nothing
End Sub
Peut-on afficher Nom2 , prenom2,...... dans le document word ?
Si on ne peut pas avoir c'est champs la sans une requete, peut on
faire un boucle a l'interieur de mon code qui me permeterais de
modififier la valeur des champs nom, prenom, emploi par mom1,
prenom1, fonction1, nom2, prenom2, fonction2....(signet de word).
Peux tu m'aiguiller?
Merci pour tes réponses.
Bonne apres-midi
@+
Yannick
Bonjour, suite à la question soulever sur le publipostage pas de
probleme cela fonctionne tres bien.
Le seul pb mais un gros, c'est que j'ai une table formation, et une
autre participantsf. J'ai soulever le pb hier (22/12/04, pb de
requette) je voudrais obtenir une seule ligne pour le N°formation.
Voici mon code de publipostage:
Private Sub Commande0_Click()
Dim W_App As Object
Set W_App = CreateObject("Word.Application")
Dim Db As DAO.Database
Dim Rst As DAO.Recordset
Dim Strsql As String
Set Db = CurrentDb
Strsql = "SELECT Formation.N°Formation, Formation.RS,
Formation.Adr1,
Formation.Adr2, Formation.cp, Formation.Ville, TypeFormation.LibelleF,
ParticipantF.Nom, ParticipantF.Prénom, ParticipantF.Emploi FROM
(Formation INNER JOIN TypeFormation ON Formation.Type > TypeFormation.Type) INNER JOIN ParticipantF ON Formation.N°Formation
= ParticipantF.N°Formation WHERE ((Formation.N°Formation)= " &
Me.N°Formation & ");"
Set Rst = Db.OpenRecordset(Strsql)
If Rst.BOF Then GoTo Exit_Sub
With W_App
.Visible = True
Do Until Rst.EOF
.Documents.Open ("C:convention.doc")
.ActiveDocument.Bookmarks("RS").Select
.Selection.InsertAfter Rst.Fields("RS")
.ActiveDocument.Bookmarks("ADR1").Select
.Selection.InsertAfter Nz(Rst.Fields("ADR1"), "")
.ActiveDocument.Bookmarks("ADR2").Select
.Selection.InsertAfter Nz(Rst.Fields("adr2"), "")
.ActiveDocument.Bookmarks("cp").Select
.Selection.InsertAfter Nz(Rst.Fields("cp"), "")
.ActiveDocument.Bookmarks("ville").Select
.Selection.InsertAfter Nz(Rst.Fields("ville"), "")
.ActiveDocument.Bookmarks("IntituleF").Select
.Selection.InsertAfter Nz(Rst.Fields("LibelleF"), "")
.ActiveDocument.Bookmarks("nom1").Select
.Selection.InsertAfter Nz(Rst.Fields("nom"), "")
.ActiveDocument.Bookmarks("prenom1").Select
.Selection.InsertAfter Nz(Rst.Fields("prénom"), "")
.ActiveDocument.Bookmarks("fonction1").Select
.Selection.InsertAfter Nz(Rst.Fields("Emploi"), "")
.ActiveDocument.Bookmarks("nom2").Select
.Selection.InsertAfter Nz(Rst.Fields("nom2"), "")
.ActiveDocument.Bookmarks("prenom2").Select
.Selection.InsertAfter Nz(Rst.Fields("prenom2"), "")
.ActiveDocument.Bookmarks("fonction2").Select
.Selection.InsertAfter Nz(Rst.Fields("emploi2"), "")
.ActiveDocument.Bookmarks("nom3").Select
.Selection.InsertAfter Nz(Rst.Fields("nom3"), "")
.ActiveDocument.Bookmarks("prenom3").Select
.Selection.InsertAfter Nz(Rst.Fields("prenom3"), "")
.ActiveDocument.Bookmarks("fonction3").Select
.Selection.InsertAfter Nz(Rst.Fields("emploi3"), "")
.ActiveDocument.Bookmarks("nom4").Select
.Selection.InsertAfter Nz(Rst.Fields("nom4"), "")
.ActiveDocument.Bookmarks("prenom4").Select
.Selection.InsertAfter Nz(Rst.Fields("prenom4"), "")
.ActiveDocument.Bookmarks("fonction4").Select
.Selection.InsertAfter Nz(Rst.Fields("emploi4"), "")
.ActiveDocument.PrintPreview: Stop
.ActiveDocument.PrintOut False
.ActiveDocument.Close wdDoNotSaveChanges
Rst.MoveNext
Loop
End With
Exit_Sub:
Rst.Close
Set Rst = Nothing
Set Db = Nothing
W_App.Quit
Set W_App = Nothing
End Sub
Peut-on afficher Nom2 , prenom2,...... dans le document word ?
Si on ne peut pas avoir c'est champs la sans une requete, peut on
faire un boucle a l'interieur de mon code qui me permeterais de
modififier la valeur des champs nom, prenom, emploi par mom1,
prenom1, fonction1, nom2, prenom2, fonction2....(signet de word).
Peux tu m'aiguiller?
Merci pour tes réponses.
Bonne apres-midi
@+
Yannick
Bonjour, suite à la question soulever sur le publipostage pas de probleme
cela fonctionne tres bien.
Le seul pb mais un gros, c'est que j'ai une table formation, et une autre
participantsf. J'ai soulever le pb hier (22/12/04, pb de requette) je
voudrais obtenir une seule ligne pour le N°formation.
Voici mon code de publipostage:
Private Sub Commande0_Click()
Dim W_App As Object
Set W_App = CreateObject("Word.Application")
Dim Db As DAO.Database
Dim Rst As DAO.Recordset
Dim Strsql As String
Set Db = CurrentDb
Strsql = "SELECT Formation.N°Formation, Formation.RS, Formation.Adr1,
Formation.Adr2, Formation.cp, Formation.Ville, TypeFormation.LibelleF,
ParticipantF.Nom, ParticipantF.Prénom, ParticipantF.Emploi FROM (Formation
INNER JOIN TypeFormation ON Formation.Type = TypeFormation.Type) INNER
JOIN
ParticipantF ON Formation.N°Formation = ParticipantF.N°Formation WHERE
((Formation.N°Formation)= " & Me.N°Formation & ");"
Set Rst = Db.OpenRecordset(Strsql)
If Rst.BOF Then GoTo Exit_Sub
With W_App
.Visible = True
Do Until Rst.EOF
.Documents.Open ("C:convention.doc")
.ActiveDocument.Bookmarks("RS").Select
.Selection.InsertAfter Rst.Fields("RS")
.ActiveDocument.Bookmarks("ADR1").Select
.Selection.InsertAfter Nz(Rst.Fields("ADR1"), "")
.ActiveDocument.Bookmarks("ADR2").Select
.Selection.InsertAfter Nz(Rst.Fields("adr2"), "")
.ActiveDocument.Bookmarks("cp").Select
.Selection.InsertAfter Nz(Rst.Fields("cp"), "")
.ActiveDocument.Bookmarks("ville").Select
.Selection.InsertAfter Nz(Rst.Fields("ville"), "")
.ActiveDocument.Bookmarks("IntituleF").Select
.Selection.InsertAfter Nz(Rst.Fields("LibelleF"), "")
.ActiveDocument.Bookmarks("nom1").Select
.Selection.InsertAfter Nz(Rst.Fields("nom"), "")
.ActiveDocument.Bookmarks("prenom1").Select
.Selection.InsertAfter Nz(Rst.Fields("prénom"), "")
.ActiveDocument.Bookmarks("fonction1").Select
.Selection.InsertAfter Nz(Rst.Fields("Emploi"), "")
.ActiveDocument.Bookmarks("nom2").Select
.Selection.InsertAfter Nz(Rst.Fields("nom2"), "")
.ActiveDocument.Bookmarks("prenom2").Select
.Selection.InsertAfter Nz(Rst.Fields("prenom2"), "")
.ActiveDocument.Bookmarks("fonction2").Select
.Selection.InsertAfter Nz(Rst.Fields("emploi2"), "")
.ActiveDocument.Bookmarks("nom3").Select
.Selection.InsertAfter Nz(Rst.Fields("nom3"), "")
.ActiveDocument.Bookmarks("prenom3").Select
.Selection.InsertAfter Nz(Rst.Fields("prenom3"), "")
.ActiveDocument.Bookmarks("fonction3").Select
.Selection.InsertAfter Nz(Rst.Fields("emploi3"), "")
.ActiveDocument.Bookmarks("nom4").Select
.Selection.InsertAfter Nz(Rst.Fields("nom4"), "")
.ActiveDocument.Bookmarks("prenom4").Select
.Selection.InsertAfter Nz(Rst.Fields("prenom4"), "")
.ActiveDocument.Bookmarks("fonction4").Select
.Selection.InsertAfter Nz(Rst.Fields("emploi4"), "")
.ActiveDocument.PrintPreview: Stop
.ActiveDocument.PrintOut False
.ActiveDocument.Close wdDoNotSaveChanges
Rst.MoveNext
Loop
End With
Exit_Sub:
Rst.Close
Set Rst = Nothing
Set Db = Nothing
W_App.Quit
Set W_App = Nothing
End Sub
Peut-on afficher Nom2 , prenom2,...... dans le document word ?
Si on ne peut pas avoir c'est champs la sans une requete, peut on faire un
boucle a l'interieur de mon code qui me permeterais de modififier la
valeur
des champs nom, prenom, emploi par mom1, prenom1, fonction1, nom2,
prenom2,
fonction2....(signet de word).
Peux tu m'aiguiller?
Merci pour tes réponses.
Bonne apres-midi
@+
Yannick
Bonjour, suite à la question soulever sur le publipostage pas de probleme
cela fonctionne tres bien.
Le seul pb mais un gros, c'est que j'ai une table formation, et une autre
participantsf. J'ai soulever le pb hier (22/12/04, pb de requette) je
voudrais obtenir une seule ligne pour le N°formation.
Voici mon code de publipostage:
Private Sub Commande0_Click()
Dim W_App As Object
Set W_App = CreateObject("Word.Application")
Dim Db As DAO.Database
Dim Rst As DAO.Recordset
Dim Strsql As String
Set Db = CurrentDb
Strsql = "SELECT Formation.N°Formation, Formation.RS, Formation.Adr1,
Formation.Adr2, Formation.cp, Formation.Ville, TypeFormation.LibelleF,
ParticipantF.Nom, ParticipantF.Prénom, ParticipantF.Emploi FROM (Formation
INNER JOIN TypeFormation ON Formation.Type = TypeFormation.Type) INNER
JOIN
ParticipantF ON Formation.N°Formation = ParticipantF.N°Formation WHERE
((Formation.N°Formation)= " & Me.N°Formation & ");"
Set Rst = Db.OpenRecordset(Strsql)
If Rst.BOF Then GoTo Exit_Sub
With W_App
.Visible = True
Do Until Rst.EOF
.Documents.Open ("C:convention.doc")
.ActiveDocument.Bookmarks("RS").Select
.Selection.InsertAfter Rst.Fields("RS")
.ActiveDocument.Bookmarks("ADR1").Select
.Selection.InsertAfter Nz(Rst.Fields("ADR1"), "")
.ActiveDocument.Bookmarks("ADR2").Select
.Selection.InsertAfter Nz(Rst.Fields("adr2"), "")
.ActiveDocument.Bookmarks("cp").Select
.Selection.InsertAfter Nz(Rst.Fields("cp"), "")
.ActiveDocument.Bookmarks("ville").Select
.Selection.InsertAfter Nz(Rst.Fields("ville"), "")
.ActiveDocument.Bookmarks("IntituleF").Select
.Selection.InsertAfter Nz(Rst.Fields("LibelleF"), "")
.ActiveDocument.Bookmarks("nom1").Select
.Selection.InsertAfter Nz(Rst.Fields("nom"), "")
.ActiveDocument.Bookmarks("prenom1").Select
.Selection.InsertAfter Nz(Rst.Fields("prénom"), "")
.ActiveDocument.Bookmarks("fonction1").Select
.Selection.InsertAfter Nz(Rst.Fields("Emploi"), "")
.ActiveDocument.Bookmarks("nom2").Select
.Selection.InsertAfter Nz(Rst.Fields("nom2"), "")
.ActiveDocument.Bookmarks("prenom2").Select
.Selection.InsertAfter Nz(Rst.Fields("prenom2"), "")
.ActiveDocument.Bookmarks("fonction2").Select
.Selection.InsertAfter Nz(Rst.Fields("emploi2"), "")
.ActiveDocument.Bookmarks("nom3").Select
.Selection.InsertAfter Nz(Rst.Fields("nom3"), "")
.ActiveDocument.Bookmarks("prenom3").Select
.Selection.InsertAfter Nz(Rst.Fields("prenom3"), "")
.ActiveDocument.Bookmarks("fonction3").Select
.Selection.InsertAfter Nz(Rst.Fields("emploi3"), "")
.ActiveDocument.Bookmarks("nom4").Select
.Selection.InsertAfter Nz(Rst.Fields("nom4"), "")
.ActiveDocument.Bookmarks("prenom4").Select
.Selection.InsertAfter Nz(Rst.Fields("prenom4"), "")
.ActiveDocument.Bookmarks("fonction4").Select
.Selection.InsertAfter Nz(Rst.Fields("emploi4"), "")
.ActiveDocument.PrintPreview: Stop
.ActiveDocument.PrintOut False
.ActiveDocument.Close wdDoNotSaveChanges
Rst.MoveNext
Loop
End With
Exit_Sub:
Rst.Close
Set Rst = Nothing
Set Db = Nothing
W_App.Quit
Set W_App = Nothing
End Sub
Peut-on afficher Nom2 , prenom2,...... dans le document word ?
Si on ne peut pas avoir c'est champs la sans une requete, peut on faire un
boucle a l'interieur de mon code qui me permeterais de modififier la
valeur
des champs nom, prenom, emploi par mom1, prenom1, fonction1, nom2,
prenom2,
fonction2....(signet de word).
Peux tu m'aiguiller?
Merci pour tes réponses.
Bonne apres-midi
@+
Yannick
Bonjour, suite à la question soulever sur le publipostage pas de probleme
cela fonctionne tres bien.
Le seul pb mais un gros, c'est que j'ai une table formation, et une autre
participantsf. J'ai soulever le pb hier (22/12/04, pb de requette) je
voudrais obtenir une seule ligne pour le N°formation.
Voici mon code de publipostage:
Private Sub Commande0_Click()
Dim W_App As Object
Set W_App = CreateObject("Word.Application")
Dim Db As DAO.Database
Dim Rst As DAO.Recordset
Dim Strsql As String
Set Db = CurrentDb
Strsql = "SELECT Formation.N°Formation, Formation.RS, Formation.Adr1,
Formation.Adr2, Formation.cp, Formation.Ville, TypeFormation.LibelleF,
ParticipantF.Nom, ParticipantF.Prénom, ParticipantF.Emploi FROM (Formation
INNER JOIN TypeFormation ON Formation.Type = TypeFormation.Type) INNER
JOIN
ParticipantF ON Formation.N°Formation = ParticipantF.N°Formation WHERE
((Formation.N°Formation)= " & Me.N°Formation & ");"
Set Rst = Db.OpenRecordset(Strsql)
If Rst.BOF Then GoTo Exit_Sub
With W_App
.Visible = True
Do Until Rst.EOF
.Documents.Open ("C:convention.doc")
.ActiveDocument.Bookmarks("RS").Select
.Selection.InsertAfter Rst.Fields("RS")
.ActiveDocument.Bookmarks("ADR1").Select
.Selection.InsertAfter Nz(Rst.Fields("ADR1"), "")
.ActiveDocument.Bookmarks("ADR2").Select
.Selection.InsertAfter Nz(Rst.Fields("adr2"), "")
.ActiveDocument.Bookmarks("cp").Select
.Selection.InsertAfter Nz(Rst.Fields("cp"), "")
.ActiveDocument.Bookmarks("ville").Select
.Selection.InsertAfter Nz(Rst.Fields("ville"), "")
.ActiveDocument.Bookmarks("IntituleF").Select
.Selection.InsertAfter Nz(Rst.Fields("LibelleF"), "")
.ActiveDocument.Bookmarks("nom1").Select
.Selection.InsertAfter Nz(Rst.Fields("nom"), "")
.ActiveDocument.Bookmarks("prenom1").Select
.Selection.InsertAfter Nz(Rst.Fields("prénom"), "")
.ActiveDocument.Bookmarks("fonction1").Select
.Selection.InsertAfter Nz(Rst.Fields("Emploi"), "")
.ActiveDocument.Bookmarks("nom2").Select
.Selection.InsertAfter Nz(Rst.Fields("nom2"), "")
.ActiveDocument.Bookmarks("prenom2").Select
.Selection.InsertAfter Nz(Rst.Fields("prenom2"), "")
.ActiveDocument.Bookmarks("fonction2").Select
.Selection.InsertAfter Nz(Rst.Fields("emploi2"), "")
.ActiveDocument.Bookmarks("nom3").Select
.Selection.InsertAfter Nz(Rst.Fields("nom3"), "")
.ActiveDocument.Bookmarks("prenom3").Select
.Selection.InsertAfter Nz(Rst.Fields("prenom3"), "")
.ActiveDocument.Bookmarks("fonction3").Select
.Selection.InsertAfter Nz(Rst.Fields("emploi3"), "")
.ActiveDocument.Bookmarks("nom4").Select
.Selection.InsertAfter Nz(Rst.Fields("nom4"), "")
.ActiveDocument.Bookmarks("prenom4").Select
.Selection.InsertAfter Nz(Rst.Fields("prenom4"), "")
.ActiveDocument.Bookmarks("fonction4").Select
.Selection.InsertAfter Nz(Rst.Fields("emploi4"), "")
.ActiveDocument.PrintPreview: Stop
.ActiveDocument.PrintOut False
.ActiveDocument.Close wdDoNotSaveChanges
Rst.MoveNext
Loop
End With
Exit_Sub:
Rst.Close
Set Rst = Nothing
Set Db = Nothing
W_App.Quit
Set W_App = Nothing
End Sub
Peut-on afficher Nom2 , prenom2,...... dans le document word ?
Si on ne peut pas avoir c'est champs la sans une requete, peut on faire un
boucle a l'interieur de mon code qui me permeterais de modififier la
valeur
des champs nom, prenom, emploi par mom1, prenom1, fonction1, nom2,
prenom2,
fonction2....(signet de word).
Peux tu m'aiguiller?
Merci pour tes réponses.
Bonne apres-midi
@+
Yannick
re Yannick,
J'ai repris les infos de ton post du 22/12 pour la requête et dans celui
ci tu as 2 jointures donc à toi d'adapter le sql.
Je ne vois pas d'autre méthode que de créer une table temporaire pour la
fusion. La procédure ci-dessous le fait. A toi d'adapter les champs.
Sub Yannick()
On Error GoTo Err_Suppression
Dim strSQL As String, rst As DAO.Recordset
Dim cpt As Integer, i As Integer
' A toi de passer en paramètre le n° de la formation
strSQL = "select Formation.numF,Intitule, Nom,Prenom "
strSQL = strSQL & "from formation inner join participant "
strSQL = strSQL & "on formation.numf=participant.numf "
strSQL = strSQL & "where formation.numf=1 " '< --Ici
Set rst = CurrentDb.OpenRecordset(strSQL)
If rst.BOF Then Exit Sub
' on cherche le nombre de personnes suivant cette formation
' ce qui permet de créer autant de couples chpNom, chpPrenom
' que nécessaire dans la table Mailing
rst.MoveLast
cpt = rst.RecordCount
rst.MoveFirst
' Création de la table temporaire pour le mailing
strSQL = "create table Mailing( "
strSQL = strSQL & "Numf Integer, intitule text,"
For i = 1 To cpt
strSQL = strSQL & "chpNom" & i & " Text, chpPrenom" _
& i & " Text,"
Next i
strSQL = Left(strSQL, Len(strSQL) - 1)
strSQL = strSQL & ");"
CurrentDb.Execute strSQL ' Création de la table
'rst(0) = N° Formation, rst(1)= Intitulé
strSQL = "Insert into Mailing Values(" & rst(0) & ",""" _
& rst(1) & ""","""
' rst(2) et rst(3) les noms, prenoms
While Not rst.EOF
strSQL = strSQL & rst(2) & """,""" & rst(3) _
& ""","""
rst.MoveNext
Wend
strSQL = Left(strSQL, Len(strSQL) - 2)
strSQL = strSQL & ");"
' Insertion des données dans la table Mailing
CurrentDb.Execute strSQL
Exit Sub
Err_Suppression:
If Err.Number = 3010 Then
CurrentDb.TableDefs.Delete "Mailing"
Resume
Else
MsgBox Err.Description, Err.Number
End If
End Sub
Il faut que ce code soit exécuté avant l'instruction :
Set Rst = Db.OpenRecordset(Strsql)
qui devient :
Set Rst = Db.OpenRecordset("Mailing")
A+
Eric
"=?Utf-8?B?eWFubmljaw==?=" écrivait
news::Bonjour, suite à la question soulever sur le publipostage pas de
probleme cela fonctionne tres bien.
Le seul pb mais un gros, c'est que j'ai une table formation, et une
autre participantsf. J'ai soulever le pb hier (22/12/04, pb de
requette) je voudrais obtenir une seule ligne pour le N°formation.
Voici mon code de publipostage:
Private Sub Commande0_Click()
Dim W_App As Object
Set W_App = CreateObject("Word.Application")
Dim Db As DAO.Database
Dim Rst As DAO.Recordset
Dim Strsql As String
Set Db = CurrentDb
Strsql = "SELECT Formation.N°Formation, Formation.RS,
Formation.Adr1,
Formation.Adr2, Formation.cp, Formation.Ville, TypeFormation.LibelleF,
ParticipantF.Nom, ParticipantF.Prénom, ParticipantF.Emploi FROM
(Formation INNER JOIN TypeFormation ON Formation.Type > > TypeFormation.Type) INNER JOIN ParticipantF ON Formation.N°Formation
= ParticipantF.N°Formation WHERE ((Formation.N°Formation)= " &
Me.N°Formation & ");"
Set Rst = Db.OpenRecordset(Strsql)
If Rst.BOF Then GoTo Exit_Sub
With W_App
.Visible = True
Do Until Rst.EOF
.Documents.Open ("C:convention.doc")
.ActiveDocument.Bookmarks("RS").Select
.Selection.InsertAfter Rst.Fields("RS")
.ActiveDocument.Bookmarks("ADR1").Select
.Selection.InsertAfter Nz(Rst.Fields("ADR1"), "")
.ActiveDocument.Bookmarks("ADR2").Select
.Selection.InsertAfter Nz(Rst.Fields("adr2"), "")
.ActiveDocument.Bookmarks("cp").Select
.Selection.InsertAfter Nz(Rst.Fields("cp"), "")
.ActiveDocument.Bookmarks("ville").Select
.Selection.InsertAfter Nz(Rst.Fields("ville"), "")
.ActiveDocument.Bookmarks("IntituleF").Select
.Selection.InsertAfter Nz(Rst.Fields("LibelleF"), "")
.ActiveDocument.Bookmarks("nom1").Select
.Selection.InsertAfter Nz(Rst.Fields("nom"), "")
.ActiveDocument.Bookmarks("prenom1").Select
.Selection.InsertAfter Nz(Rst.Fields("prénom"), "")
.ActiveDocument.Bookmarks("fonction1").Select
.Selection.InsertAfter Nz(Rst.Fields("Emploi"), "")
.ActiveDocument.Bookmarks("nom2").Select
.Selection.InsertAfter Nz(Rst.Fields("nom2"), "")
.ActiveDocument.Bookmarks("prenom2").Select
.Selection.InsertAfter Nz(Rst.Fields("prenom2"), "")
.ActiveDocument.Bookmarks("fonction2").Select
.Selection.InsertAfter Nz(Rst.Fields("emploi2"), "")
.ActiveDocument.Bookmarks("nom3").Select
.Selection.InsertAfter Nz(Rst.Fields("nom3"), "")
.ActiveDocument.Bookmarks("prenom3").Select
.Selection.InsertAfter Nz(Rst.Fields("prenom3"), "")
.ActiveDocument.Bookmarks("fonction3").Select
.Selection.InsertAfter Nz(Rst.Fields("emploi3"), "")
.ActiveDocument.Bookmarks("nom4").Select
.Selection.InsertAfter Nz(Rst.Fields("nom4"), "")
.ActiveDocument.Bookmarks("prenom4").Select
.Selection.InsertAfter Nz(Rst.Fields("prenom4"), "")
.ActiveDocument.Bookmarks("fonction4").Select
.Selection.InsertAfter Nz(Rst.Fields("emploi4"), "")
.ActiveDocument.PrintPreview: Stop
.ActiveDocument.PrintOut False
.ActiveDocument.Close wdDoNotSaveChanges
Rst.MoveNext
Loop
End With
Exit_Sub:
Rst.Close
Set Rst = Nothing
Set Db = Nothing
W_App.Quit
Set W_App = Nothing
End Sub
Peut-on afficher Nom2 , prenom2,...... dans le document word ?
Si on ne peut pas avoir c'est champs la sans une requete, peut on
faire un boucle a l'interieur de mon code qui me permeterais de
modififier la valeur des champs nom, prenom, emploi par mom1,
prenom1, fonction1, nom2, prenom2, fonction2....(signet de word).
Peux tu m'aiguiller?
Merci pour tes réponses.
Bonne apres-midi
@+
Yannick
re Yannick,
J'ai repris les infos de ton post du 22/12 pour la requête et dans celui
ci tu as 2 jointures donc à toi d'adapter le sql.
Je ne vois pas d'autre méthode que de créer une table temporaire pour la
fusion. La procédure ci-dessous le fait. A toi d'adapter les champs.
Sub Yannick()
On Error GoTo Err_Suppression
Dim strSQL As String, rst As DAO.Recordset
Dim cpt As Integer, i As Integer
' A toi de passer en paramètre le n° de la formation
strSQL = "select Formation.numF,Intitule, Nom,Prenom "
strSQL = strSQL & "from formation inner join participant "
strSQL = strSQL & "on formation.numf=participant.numf "
strSQL = strSQL & "where formation.numf=1 " '< --Ici
Set rst = CurrentDb.OpenRecordset(strSQL)
If rst.BOF Then Exit Sub
' on cherche le nombre de personnes suivant cette formation
' ce qui permet de créer autant de couples chpNom, chpPrenom
' que nécessaire dans la table Mailing
rst.MoveLast
cpt = rst.RecordCount
rst.MoveFirst
' Création de la table temporaire pour le mailing
strSQL = "create table Mailing( "
strSQL = strSQL & "Numf Integer, intitule text,"
For i = 1 To cpt
strSQL = strSQL & "chpNom" & i & " Text, chpPrenom" _
& i & " Text,"
Next i
strSQL = Left(strSQL, Len(strSQL) - 1)
strSQL = strSQL & ");"
CurrentDb.Execute strSQL ' Création de la table
'rst(0) = N° Formation, rst(1)= Intitulé
strSQL = "Insert into Mailing Values(" & rst(0) & ",""" _
& rst(1) & ""","""
' rst(2) et rst(3) les noms, prenoms
While Not rst.EOF
strSQL = strSQL & rst(2) & """,""" & rst(3) _
& ""","""
rst.MoveNext
Wend
strSQL = Left(strSQL, Len(strSQL) - 2)
strSQL = strSQL & ");"
' Insertion des données dans la table Mailing
CurrentDb.Execute strSQL
Exit Sub
Err_Suppression:
If Err.Number = 3010 Then
CurrentDb.TableDefs.Delete "Mailing"
Resume
Else
MsgBox Err.Description, Err.Number
End If
End Sub
Il faut que ce code soit exécuté avant l'instruction :
Set Rst = Db.OpenRecordset(Strsql)
qui devient :
Set Rst = Db.OpenRecordset("Mailing")
A+
Eric
"=?Utf-8?B?eWFubmljaw==?=" <yannick@discussions.microsoft.com> écrivait
news:F6EF5B7A-7FE9-4C79-AC26-47AB1447194B@microsoft.com:
Bonjour, suite à la question soulever sur le publipostage pas de
probleme cela fonctionne tres bien.
Le seul pb mais un gros, c'est que j'ai une table formation, et une
autre participantsf. J'ai soulever le pb hier (22/12/04, pb de
requette) je voudrais obtenir une seule ligne pour le N°formation.
Voici mon code de publipostage:
Private Sub Commande0_Click()
Dim W_App As Object
Set W_App = CreateObject("Word.Application")
Dim Db As DAO.Database
Dim Rst As DAO.Recordset
Dim Strsql As String
Set Db = CurrentDb
Strsql = "SELECT Formation.N°Formation, Formation.RS,
Formation.Adr1,
Formation.Adr2, Formation.cp, Formation.Ville, TypeFormation.LibelleF,
ParticipantF.Nom, ParticipantF.Prénom, ParticipantF.Emploi FROM
(Formation INNER JOIN TypeFormation ON Formation.Type > > TypeFormation.Type) INNER JOIN ParticipantF ON Formation.N°Formation
= ParticipantF.N°Formation WHERE ((Formation.N°Formation)= " &
Me.N°Formation & ");"
Set Rst = Db.OpenRecordset(Strsql)
If Rst.BOF Then GoTo Exit_Sub
With W_App
.Visible = True
Do Until Rst.EOF
.Documents.Open ("C:convention.doc")
.ActiveDocument.Bookmarks("RS").Select
.Selection.InsertAfter Rst.Fields("RS")
.ActiveDocument.Bookmarks("ADR1").Select
.Selection.InsertAfter Nz(Rst.Fields("ADR1"), "")
.ActiveDocument.Bookmarks("ADR2").Select
.Selection.InsertAfter Nz(Rst.Fields("adr2"), "")
.ActiveDocument.Bookmarks("cp").Select
.Selection.InsertAfter Nz(Rst.Fields("cp"), "")
.ActiveDocument.Bookmarks("ville").Select
.Selection.InsertAfter Nz(Rst.Fields("ville"), "")
.ActiveDocument.Bookmarks("IntituleF").Select
.Selection.InsertAfter Nz(Rst.Fields("LibelleF"), "")
.ActiveDocument.Bookmarks("nom1").Select
.Selection.InsertAfter Nz(Rst.Fields("nom"), "")
.ActiveDocument.Bookmarks("prenom1").Select
.Selection.InsertAfter Nz(Rst.Fields("prénom"), "")
.ActiveDocument.Bookmarks("fonction1").Select
.Selection.InsertAfter Nz(Rst.Fields("Emploi"), "")
.ActiveDocument.Bookmarks("nom2").Select
.Selection.InsertAfter Nz(Rst.Fields("nom2"), "")
.ActiveDocument.Bookmarks("prenom2").Select
.Selection.InsertAfter Nz(Rst.Fields("prenom2"), "")
.ActiveDocument.Bookmarks("fonction2").Select
.Selection.InsertAfter Nz(Rst.Fields("emploi2"), "")
.ActiveDocument.Bookmarks("nom3").Select
.Selection.InsertAfter Nz(Rst.Fields("nom3"), "")
.ActiveDocument.Bookmarks("prenom3").Select
.Selection.InsertAfter Nz(Rst.Fields("prenom3"), "")
.ActiveDocument.Bookmarks("fonction3").Select
.Selection.InsertAfter Nz(Rst.Fields("emploi3"), "")
.ActiveDocument.Bookmarks("nom4").Select
.Selection.InsertAfter Nz(Rst.Fields("nom4"), "")
.ActiveDocument.Bookmarks("prenom4").Select
.Selection.InsertAfter Nz(Rst.Fields("prenom4"), "")
.ActiveDocument.Bookmarks("fonction4").Select
.Selection.InsertAfter Nz(Rst.Fields("emploi4"), "")
.ActiveDocument.PrintPreview: Stop
.ActiveDocument.PrintOut False
.ActiveDocument.Close wdDoNotSaveChanges
Rst.MoveNext
Loop
End With
Exit_Sub:
Rst.Close
Set Rst = Nothing
Set Db = Nothing
W_App.Quit
Set W_App = Nothing
End Sub
Peut-on afficher Nom2 , prenom2,...... dans le document word ?
Si on ne peut pas avoir c'est champs la sans une requete, peut on
faire un boucle a l'interieur de mon code qui me permeterais de
modififier la valeur des champs nom, prenom, emploi par mom1,
prenom1, fonction1, nom2, prenom2, fonction2....(signet de word).
Peux tu m'aiguiller?
Merci pour tes réponses.
Bonne apres-midi
@+
Yannick
re Yannick,
J'ai repris les infos de ton post du 22/12 pour la requête et dans celui
ci tu as 2 jointures donc à toi d'adapter le sql.
Je ne vois pas d'autre méthode que de créer une table temporaire pour la
fusion. La procédure ci-dessous le fait. A toi d'adapter les champs.
Sub Yannick()
On Error GoTo Err_Suppression
Dim strSQL As String, rst As DAO.Recordset
Dim cpt As Integer, i As Integer
' A toi de passer en paramètre le n° de la formation
strSQL = "select Formation.numF,Intitule, Nom,Prenom "
strSQL = strSQL & "from formation inner join participant "
strSQL = strSQL & "on formation.numf=participant.numf "
strSQL = strSQL & "where formation.numf=1 " '< --Ici
Set rst = CurrentDb.OpenRecordset(strSQL)
If rst.BOF Then Exit Sub
' on cherche le nombre de personnes suivant cette formation
' ce qui permet de créer autant de couples chpNom, chpPrenom
' que nécessaire dans la table Mailing
rst.MoveLast
cpt = rst.RecordCount
rst.MoveFirst
' Création de la table temporaire pour le mailing
strSQL = "create table Mailing( "
strSQL = strSQL & "Numf Integer, intitule text,"
For i = 1 To cpt
strSQL = strSQL & "chpNom" & i & " Text, chpPrenom" _
& i & " Text,"
Next i
strSQL = Left(strSQL, Len(strSQL) - 1)
strSQL = strSQL & ");"
CurrentDb.Execute strSQL ' Création de la table
'rst(0) = N° Formation, rst(1)= Intitulé
strSQL = "Insert into Mailing Values(" & rst(0) & ",""" _
& rst(1) & ""","""
' rst(2) et rst(3) les noms, prenoms
While Not rst.EOF
strSQL = strSQL & rst(2) & """,""" & rst(3) _
& ""","""
rst.MoveNext
Wend
strSQL = Left(strSQL, Len(strSQL) - 2)
strSQL = strSQL & ");"
' Insertion des données dans la table Mailing
CurrentDb.Execute strSQL
Exit Sub
Err_Suppression:
If Err.Number = 3010 Then
CurrentDb.TableDefs.Delete "Mailing"
Resume
Else
MsgBox Err.Description, Err.Number
End If
End Sub
Il faut que ce code soit exécuté avant l'instruction :
Set Rst = Db.OpenRecordset(Strsql)
qui devient :
Set Rst = Db.OpenRecordset("Mailing")
A+
Eric
"=?Utf-8?B?eWFubmljaw==?=" écrivait
news::Bonjour, suite à la question soulever sur le publipostage pas de
probleme cela fonctionne tres bien.
Le seul pb mais un gros, c'est que j'ai une table formation, et une
autre participantsf. J'ai soulever le pb hier (22/12/04, pb de
requette) je voudrais obtenir une seule ligne pour le N°formation.
Voici mon code de publipostage:
Private Sub Commande0_Click()
Dim W_App As Object
Set W_App = CreateObject("Word.Application")
Dim Db As DAO.Database
Dim Rst As DAO.Recordset
Dim Strsql As String
Set Db = CurrentDb
Strsql = "SELECT Formation.N°Formation, Formation.RS,
Formation.Adr1,
Formation.Adr2, Formation.cp, Formation.Ville, TypeFormation.LibelleF,
ParticipantF.Nom, ParticipantF.Prénom, ParticipantF.Emploi FROM
(Formation INNER JOIN TypeFormation ON Formation.Type > > TypeFormation.Type) INNER JOIN ParticipantF ON Formation.N°Formation
= ParticipantF.N°Formation WHERE ((Formation.N°Formation)= " &
Me.N°Formation & ");"
Set Rst = Db.OpenRecordset(Strsql)
If Rst.BOF Then GoTo Exit_Sub
With W_App
.Visible = True
Do Until Rst.EOF
.Documents.Open ("C:convention.doc")
.ActiveDocument.Bookmarks("RS").Select
.Selection.InsertAfter Rst.Fields("RS")
.ActiveDocument.Bookmarks("ADR1").Select
.Selection.InsertAfter Nz(Rst.Fields("ADR1"), "")
.ActiveDocument.Bookmarks("ADR2").Select
.Selection.InsertAfter Nz(Rst.Fields("adr2"), "")
.ActiveDocument.Bookmarks("cp").Select
.Selection.InsertAfter Nz(Rst.Fields("cp"), "")
.ActiveDocument.Bookmarks("ville").Select
.Selection.InsertAfter Nz(Rst.Fields("ville"), "")
.ActiveDocument.Bookmarks("IntituleF").Select
.Selection.InsertAfter Nz(Rst.Fields("LibelleF"), "")
.ActiveDocument.Bookmarks("nom1").Select
.Selection.InsertAfter Nz(Rst.Fields("nom"), "")
.ActiveDocument.Bookmarks("prenom1").Select
.Selection.InsertAfter Nz(Rst.Fields("prénom"), "")
.ActiveDocument.Bookmarks("fonction1").Select
.Selection.InsertAfter Nz(Rst.Fields("Emploi"), "")
.ActiveDocument.Bookmarks("nom2").Select
.Selection.InsertAfter Nz(Rst.Fields("nom2"), "")
.ActiveDocument.Bookmarks("prenom2").Select
.Selection.InsertAfter Nz(Rst.Fields("prenom2"), "")
.ActiveDocument.Bookmarks("fonction2").Select
.Selection.InsertAfter Nz(Rst.Fields("emploi2"), "")
.ActiveDocument.Bookmarks("nom3").Select
.Selection.InsertAfter Nz(Rst.Fields("nom3"), "")
.ActiveDocument.Bookmarks("prenom3").Select
.Selection.InsertAfter Nz(Rst.Fields("prenom3"), "")
.ActiveDocument.Bookmarks("fonction3").Select
.Selection.InsertAfter Nz(Rst.Fields("emploi3"), "")
.ActiveDocument.Bookmarks("nom4").Select
.Selection.InsertAfter Nz(Rst.Fields("nom4"), "")
.ActiveDocument.Bookmarks("prenom4").Select
.Selection.InsertAfter Nz(Rst.Fields("prenom4"), "")
.ActiveDocument.Bookmarks("fonction4").Select
.Selection.InsertAfter Nz(Rst.Fields("emploi4"), "")
.ActiveDocument.PrintPreview: Stop
.ActiveDocument.PrintOut False
.ActiveDocument.Close wdDoNotSaveChanges
Rst.MoveNext
Loop
End With
Exit_Sub:
Rst.Close
Set Rst = Nothing
Set Db = Nothing
W_App.Quit
Set W_App = Nothing
End Sub
Peut-on afficher Nom2 , prenom2,...... dans le document word ?
Si on ne peut pas avoir c'est champs la sans une requete, peut on
faire un boucle a l'interieur de mon code qui me permeterais de
modififier la valeur des champs nom, prenom, emploi par mom1,
prenom1, fonction1, nom2, prenom2, fonction2....(signet de word).
Peux tu m'aiguiller?
Merci pour tes réponses.
Bonne apres-midi
@+
Yannick
re Yannick,
J'ai repris les infos de ton post du 22/12 pour la requête et dans celui
ci tu as 2 jointures donc à toi d'adapter le sql.
Je ne vois pas d'autre méthode que de créer une table temporaire pour la
fusion. La procédure ci-dessous le fait. A toi d'adapter les champs.
Sub Yannick()
On Error GoTo Err_Suppression
Dim strSQL As String, rst As DAO.Recordset
Dim cpt As Integer, i As Integer
' A toi de passer en paramètre le n° de la formation
strSQL = "select Formation.numF,Intitule, Nom,Prenom "
strSQL = strSQL & "from formation inner join participant "
strSQL = strSQL & "on formation.numf=participant.numf "
strSQL = strSQL & "where formation.numf=1 " '< --Ici
Set rst = CurrentDb.OpenRecordset(strSQL)
If rst.BOF Then Exit Sub
' on cherche le nombre de personnes suivant cette formation
' ce qui permet de créer autant de couples chpNom, chpPrenom
' que nécessaire dans la table Mailing
rst.MoveLast
cpt = rst.RecordCount
rst.MoveFirst
' Création de la table temporaire pour le mailing
strSQL = "create table Mailing( "
strSQL = strSQL & "Numf Integer, intitule text,"
For i = 1 To cpt
strSQL = strSQL & "chpNom" & i & " Text, chpPrenom" _
& i & " Text,"
Next i
strSQL = Left(strSQL, Len(strSQL) - 1)
strSQL = strSQL & ");"
CurrentDb.Execute strSQL ' Création de la table
'rst(0) = N° Formation, rst(1)= Intitulé
strSQL = "Insert into Mailing Values(" & rst(0) & ",""" _
& rst(1) & ""","""
' rst(2) et rst(3) les noms, prenoms
While Not rst.EOF
strSQL = strSQL & rst(2) & """,""" & rst(3) _
& ""","""
rst.MoveNext
Wend
strSQL = Left(strSQL, Len(strSQL) - 2)
strSQL = strSQL & ");"
' Insertion des données dans la table Mailing
CurrentDb.Execute strSQL
Exit Sub
Err_Suppression:
If Err.Number = 3010 Then
CurrentDb.TableDefs.Delete "Mailing"
Resume
Else
MsgBox Err.Description, Err.Number
End If
End Sub
Il faut que ce code soit exécuté avant l'instruction :
Set Rst = Db.OpenRecordset(Strsql)
qui devient :
Set Rst = Db.OpenRecordset("Mailing")
A+
Eric
"=?Utf-8?B?eWFubmljaw==?=" écrivait
news::Bonjour, suite à la question soulever sur le publipostage pas de
probleme cela fonctionne tres bien.
Le seul pb mais un gros, c'est que j'ai une table formation, et une
autre participantsf. J'ai soulever le pb hier (22/12/04, pb de
requette) je voudrais obtenir une seule ligne pour le N°formation.
Voici mon code de publipostage:
Private Sub Commande0_Click()
Dim W_App As Object
Set W_App = CreateObject("Word.Application")
Dim Db As DAO.Database
Dim Rst As DAO.Recordset
Dim Strsql As String
Set Db = CurrentDb
Strsql = "SELECT Formation.N°Formation, Formation.RS,
Formation.Adr1,
Formation.Adr2, Formation.cp, Formation.Ville, TypeFormation.LibelleF,
ParticipantF.Nom, ParticipantF.Prénom, ParticipantF.Emploi FROM
(Formation INNER JOIN TypeFormation ON Formation.Type > > TypeFormation.Type) INNER JOIN ParticipantF ON Formation.N°Formation
= ParticipantF.N°Formation WHERE ((Formation.N°Formation)= " &
Me.N°Formation & ");"
Set Rst = Db.OpenRecordset(Strsql)
If Rst.BOF Then GoTo Exit_Sub
With W_App
.Visible = True
Do Until Rst.EOF
.Documents.Open ("C:convention.doc")
.ActiveDocument.Bookmarks("RS").Select
.Selection.InsertAfter Rst.Fields("RS")
.ActiveDocument.Bookmarks("ADR1").Select
.Selection.InsertAfter Nz(Rst.Fields("ADR1"), "")
.ActiveDocument.Bookmarks("ADR2").Select
.Selection.InsertAfter Nz(Rst.Fields("adr2"), "")
.ActiveDocument.Bookmarks("cp").Select
.Selection.InsertAfter Nz(Rst.Fields("cp"), "")
.ActiveDocument.Bookmarks("ville").Select
.Selection.InsertAfter Nz(Rst.Fields("ville"), "")
.ActiveDocument.Bookmarks("IntituleF").Select
.Selection.InsertAfter Nz(Rst.Fields("LibelleF"), "")
.ActiveDocument.Bookmarks("nom1").Select
.Selection.InsertAfter Nz(Rst.Fields("nom"), "")
.ActiveDocument.Bookmarks("prenom1").Select
.Selection.InsertAfter Nz(Rst.Fields("prénom"), "")
.ActiveDocument.Bookmarks("fonction1").Select
.Selection.InsertAfter Nz(Rst.Fields("Emploi"), "")
.ActiveDocument.Bookmarks("nom2").Select
.Selection.InsertAfter Nz(Rst.Fields("nom2"), "")
.ActiveDocument.Bookmarks("prenom2").Select
.Selection.InsertAfter Nz(Rst.Fields("prenom2"), "")
.ActiveDocument.Bookmarks("fonction2").Select
.Selection.InsertAfter Nz(Rst.Fields("emploi2"), "")
.ActiveDocument.Bookmarks("nom3").Select
.Selection.InsertAfter Nz(Rst.Fields("nom3"), "")
.ActiveDocument.Bookmarks("prenom3").Select
.Selection.InsertAfter Nz(Rst.Fields("prenom3"), "")
.ActiveDocument.Bookmarks("fonction3").Select
.Selection.InsertAfter Nz(Rst.Fields("emploi3"), "")
.ActiveDocument.Bookmarks("nom4").Select
.Selection.InsertAfter Nz(Rst.Fields("nom4"), "")
.ActiveDocument.Bookmarks("prenom4").Select
.Selection.InsertAfter Nz(Rst.Fields("prenom4"), "")
.ActiveDocument.Bookmarks("fonction4").Select
.Selection.InsertAfter Nz(Rst.Fields("emploi4"), "")
.ActiveDocument.PrintPreview: Stop
.ActiveDocument.PrintOut False
.ActiveDocument.Close wdDoNotSaveChanges
Rst.MoveNext
Loop
End With
Exit_Sub:
Rst.Close
Set Rst = Nothing
Set Db = Nothing
W_App.Quit
Set W_App = Nothing
End Sub
Peut-on afficher Nom2 , prenom2,...... dans le document word ?
Si on ne peut pas avoir c'est champs la sans une requete, peut on
faire un boucle a l'interieur de mon code qui me permeterais de
modififier la valeur des champs nom, prenom, emploi par mom1,
prenom1, fonction1, nom2, prenom2, fonction2....(signet de word).
Peux tu m'aiguiller?
Merci pour tes réponses.
Bonne apres-midi
@+
Yannick
re Yannick,
J'ai repris les infos de ton post du 22/12 pour la requête et dans celui
ci tu as 2 jointures donc à toi d'adapter le sql.
Je ne vois pas d'autre méthode que de créer une table temporaire pour la
fusion. La procédure ci-dessous le fait. A toi d'adapter les champs.
Sub Yannick()
On Error GoTo Err_Suppression
Dim strSQL As String, rst As DAO.Recordset
Dim cpt As Integer, i As Integer
' A toi de passer en paramètre le n° de la formation
strSQL = "select Formation.numF,Intitule, Nom,Prenom "
strSQL = strSQL & "from formation inner join participant "
strSQL = strSQL & "on formation.numf=participant.numf "
strSQL = strSQL & "where formation.numf=1 " '< --Ici
Set rst = CurrentDb.OpenRecordset(strSQL)
If rst.BOF Then Exit Sub
' on cherche le nombre de personnes suivant cette formation
' ce qui permet de créer autant de couples chpNom, chpPrenom
' que nécessaire dans la table Mailing
rst.MoveLast
cpt = rst.RecordCount
rst.MoveFirst
' Création de la table temporaire pour le mailing
strSQL = "create table Mailing( "
strSQL = strSQL & "Numf Integer, intitule text,"
For i = 1 To cpt
strSQL = strSQL & "chpNom" & i & " Text, chpPrenom" _
& i & " Text,"
Next i
strSQL = Left(strSQL, Len(strSQL) - 1)
strSQL = strSQL & ");"
CurrentDb.Execute strSQL ' Création de la table
'rst(0) = N° Formation, rst(1)= Intitulé
strSQL = "Insert into Mailing Values(" & rst(0) & ",""" _
& rst(1) & ""","""
' rst(2) et rst(3) les noms, prenoms
While Not rst.EOF
strSQL = strSQL & rst(2) & """,""" & rst(3) _
& ""","""
rst.MoveNext
Wend
strSQL = Left(strSQL, Len(strSQL) - 2)
strSQL = strSQL & ");"
' Insertion des données dans la table Mailing
CurrentDb.Execute strSQL
Exit Sub
Err_Suppression:
If Err.Number = 3010 Then
CurrentDb.TableDefs.Delete "Mailing"
Resume
Else
MsgBox Err.Description, Err.Number
End If
End Sub
Il faut que ce code soit exécuté avant l'instruction :
Set Rst = Db.OpenRecordset(Strsql)
qui devient :
Set Rst = Db.OpenRecordset("Mailing")
A+
Eric
"=?Utf-8?B?eWFubmljaw==?=" <yannick@discussions.microsoft.com> écrivait
news:F6EF5B7A-7FE9-4C79-AC26-47AB1447194B@microsoft.com:
Bonjour, suite à la question soulever sur le publipostage pas de
probleme cela fonctionne tres bien.
Le seul pb mais un gros, c'est que j'ai une table formation, et une
autre participantsf. J'ai soulever le pb hier (22/12/04, pb de
requette) je voudrais obtenir une seule ligne pour le N°formation.
Voici mon code de publipostage:
Private Sub Commande0_Click()
Dim W_App As Object
Set W_App = CreateObject("Word.Application")
Dim Db As DAO.Database
Dim Rst As DAO.Recordset
Dim Strsql As String
Set Db = CurrentDb
Strsql = "SELECT Formation.N°Formation, Formation.RS,
Formation.Adr1,
Formation.Adr2, Formation.cp, Formation.Ville, TypeFormation.LibelleF,
ParticipantF.Nom, ParticipantF.Prénom, ParticipantF.Emploi FROM
(Formation INNER JOIN TypeFormation ON Formation.Type > > TypeFormation.Type) INNER JOIN ParticipantF ON Formation.N°Formation
= ParticipantF.N°Formation WHERE ((Formation.N°Formation)= " &
Me.N°Formation & ");"
Set Rst = Db.OpenRecordset(Strsql)
If Rst.BOF Then GoTo Exit_Sub
With W_App
.Visible = True
Do Until Rst.EOF
.Documents.Open ("C:convention.doc")
.ActiveDocument.Bookmarks("RS").Select
.Selection.InsertAfter Rst.Fields("RS")
.ActiveDocument.Bookmarks("ADR1").Select
.Selection.InsertAfter Nz(Rst.Fields("ADR1"), "")
.ActiveDocument.Bookmarks("ADR2").Select
.Selection.InsertAfter Nz(Rst.Fields("adr2"), "")
.ActiveDocument.Bookmarks("cp").Select
.Selection.InsertAfter Nz(Rst.Fields("cp"), "")
.ActiveDocument.Bookmarks("ville").Select
.Selection.InsertAfter Nz(Rst.Fields("ville"), "")
.ActiveDocument.Bookmarks("IntituleF").Select
.Selection.InsertAfter Nz(Rst.Fields("LibelleF"), "")
.ActiveDocument.Bookmarks("nom1").Select
.Selection.InsertAfter Nz(Rst.Fields("nom"), "")
.ActiveDocument.Bookmarks("prenom1").Select
.Selection.InsertAfter Nz(Rst.Fields("prénom"), "")
.ActiveDocument.Bookmarks("fonction1").Select
.Selection.InsertAfter Nz(Rst.Fields("Emploi"), "")
.ActiveDocument.Bookmarks("nom2").Select
.Selection.InsertAfter Nz(Rst.Fields("nom2"), "")
.ActiveDocument.Bookmarks("prenom2").Select
.Selection.InsertAfter Nz(Rst.Fields("prenom2"), "")
.ActiveDocument.Bookmarks("fonction2").Select
.Selection.InsertAfter Nz(Rst.Fields("emploi2"), "")
.ActiveDocument.Bookmarks("nom3").Select
.Selection.InsertAfter Nz(Rst.Fields("nom3"), "")
.ActiveDocument.Bookmarks("prenom3").Select
.Selection.InsertAfter Nz(Rst.Fields("prenom3"), "")
.ActiveDocument.Bookmarks("fonction3").Select
.Selection.InsertAfter Nz(Rst.Fields("emploi3"), "")
.ActiveDocument.Bookmarks("nom4").Select
.Selection.InsertAfter Nz(Rst.Fields("nom4"), "")
.ActiveDocument.Bookmarks("prenom4").Select
.Selection.InsertAfter Nz(Rst.Fields("prenom4"), "")
.ActiveDocument.Bookmarks("fonction4").Select
.Selection.InsertAfter Nz(Rst.Fields("emploi4"), "")
.ActiveDocument.PrintPreview: Stop
.ActiveDocument.PrintOut False
.ActiveDocument.Close wdDoNotSaveChanges
Rst.MoveNext
Loop
End With
Exit_Sub:
Rst.Close
Set Rst = Nothing
Set Db = Nothing
W_App.Quit
Set W_App = Nothing
End Sub
Peut-on afficher Nom2 , prenom2,...... dans le document word ?
Si on ne peut pas avoir c'est champs la sans une requete, peut on
faire un boucle a l'interieur de mon code qui me permeterais de
modififier la valeur des champs nom, prenom, emploi par mom1,
prenom1, fonction1, nom2, prenom2, fonction2....(signet de word).
Peux tu m'aiguiller?
Merci pour tes réponses.
Bonne apres-midi
@+
Yannick
re Yannick,
J'ai repris les infos de ton post du 22/12 pour la requête et dans celui
ci tu as 2 jointures donc à toi d'adapter le sql.
Je ne vois pas d'autre méthode que de créer une table temporaire pour la
fusion. La procédure ci-dessous le fait. A toi d'adapter les champs.
Sub Yannick()
On Error GoTo Err_Suppression
Dim strSQL As String, rst As DAO.Recordset
Dim cpt As Integer, i As Integer
' A toi de passer en paramètre le n° de la formation
strSQL = "select Formation.numF,Intitule, Nom,Prenom "
strSQL = strSQL & "from formation inner join participant "
strSQL = strSQL & "on formation.numf=participant.numf "
strSQL = strSQL & "where formation.numf=1 " '< --Ici
Set rst = CurrentDb.OpenRecordset(strSQL)
If rst.BOF Then Exit Sub
' on cherche le nombre de personnes suivant cette formation
' ce qui permet de créer autant de couples chpNom, chpPrenom
' que nécessaire dans la table Mailing
rst.MoveLast
cpt = rst.RecordCount
rst.MoveFirst
' Création de la table temporaire pour le mailing
strSQL = "create table Mailing( "
strSQL = strSQL & "Numf Integer, intitule text,"
For i = 1 To cpt
strSQL = strSQL & "chpNom" & i & " Text, chpPrenom" _
& i & " Text,"
Next i
strSQL = Left(strSQL, Len(strSQL) - 1)
strSQL = strSQL & ");"
CurrentDb.Execute strSQL ' Création de la table
'rst(0) = N° Formation, rst(1)= Intitulé
strSQL = "Insert into Mailing Values(" & rst(0) & ",""" _
& rst(1) & ""","""
' rst(2) et rst(3) les noms, prenoms
While Not rst.EOF
strSQL = strSQL & rst(2) & """,""" & rst(3) _
& ""","""
rst.MoveNext
Wend
strSQL = Left(strSQL, Len(strSQL) - 2)
strSQL = strSQL & ");"
' Insertion des données dans la table Mailing
CurrentDb.Execute strSQL
Exit Sub
Err_Suppression:
If Err.Number = 3010 Then
CurrentDb.TableDefs.Delete "Mailing"
Resume
Else
MsgBox Err.Description, Err.Number
End If
End Sub
Il faut que ce code soit exécuté avant l'instruction :
Set Rst = Db.OpenRecordset(Strsql)
qui devient :
Set Rst = Db.OpenRecordset("Mailing")
A+
Eric
"=?Utf-8?B?eWFubmljaw==?=" écrivait
news::Bonjour, suite à la question soulever sur le publipostage pas de
probleme cela fonctionne tres bien.
Le seul pb mais un gros, c'est que j'ai une table formation, et une
autre participantsf. J'ai soulever le pb hier (22/12/04, pb de
requette) je voudrais obtenir une seule ligne pour le N°formation.
Voici mon code de publipostage:
Private Sub Commande0_Click()
Dim W_App As Object
Set W_App = CreateObject("Word.Application")
Dim Db As DAO.Database
Dim Rst As DAO.Recordset
Dim Strsql As String
Set Db = CurrentDb
Strsql = "SELECT Formation.N°Formation, Formation.RS,
Formation.Adr1,
Formation.Adr2, Formation.cp, Formation.Ville, TypeFormation.LibelleF,
ParticipantF.Nom, ParticipantF.Prénom, ParticipantF.Emploi FROM
(Formation INNER JOIN TypeFormation ON Formation.Type > > TypeFormation.Type) INNER JOIN ParticipantF ON Formation.N°Formation
= ParticipantF.N°Formation WHERE ((Formation.N°Formation)= " &
Me.N°Formation & ");"
Set Rst = Db.OpenRecordset(Strsql)
If Rst.BOF Then GoTo Exit_Sub
With W_App
.Visible = True
Do Until Rst.EOF
.Documents.Open ("C:convention.doc")
.ActiveDocument.Bookmarks("RS").Select
.Selection.InsertAfter Rst.Fields("RS")
.ActiveDocument.Bookmarks("ADR1").Select
.Selection.InsertAfter Nz(Rst.Fields("ADR1"), "")
.ActiveDocument.Bookmarks("ADR2").Select
.Selection.InsertAfter Nz(Rst.Fields("adr2"), "")
.ActiveDocument.Bookmarks("cp").Select
.Selection.InsertAfter Nz(Rst.Fields("cp"), "")
.ActiveDocument.Bookmarks("ville").Select
.Selection.InsertAfter Nz(Rst.Fields("ville"), "")
.ActiveDocument.Bookmarks("IntituleF").Select
.Selection.InsertAfter Nz(Rst.Fields("LibelleF"), "")
.ActiveDocument.Bookmarks("nom1").Select
.Selection.InsertAfter Nz(Rst.Fields("nom"), "")
.ActiveDocument.Bookmarks("prenom1").Select
.Selection.InsertAfter Nz(Rst.Fields("prénom"), "")
.ActiveDocument.Bookmarks("fonction1").Select
.Selection.InsertAfter Nz(Rst.Fields("Emploi"), "")
.ActiveDocument.Bookmarks("nom2").Select
.Selection.InsertAfter Nz(Rst.Fields("nom2"), "")
.ActiveDocument.Bookmarks("prenom2").Select
.Selection.InsertAfter Nz(Rst.Fields("prenom2"), "")
.ActiveDocument.Bookmarks("fonction2").Select
.Selection.InsertAfter Nz(Rst.Fields("emploi2"), "")
.ActiveDocument.Bookmarks("nom3").Select
.Selection.InsertAfter Nz(Rst.Fields("nom3"), "")
.ActiveDocument.Bookmarks("prenom3").Select
.Selection.InsertAfter Nz(Rst.Fields("prenom3"), "")
.ActiveDocument.Bookmarks("fonction3").Select
.Selection.InsertAfter Nz(Rst.Fields("emploi3"), "")
.ActiveDocument.Bookmarks("nom4").Select
.Selection.InsertAfter Nz(Rst.Fields("nom4"), "")
.ActiveDocument.Bookmarks("prenom4").Select
.Selection.InsertAfter Nz(Rst.Fields("prenom4"), "")
.ActiveDocument.Bookmarks("fonction4").Select
.Selection.InsertAfter Nz(Rst.Fields("emploi4"), "")
.ActiveDocument.PrintPreview: Stop
.ActiveDocument.PrintOut False
.ActiveDocument.Close wdDoNotSaveChanges
Rst.MoveNext
Loop
End With
Exit_Sub:
Rst.Close
Set Rst = Nothing
Set Db = Nothing
W_App.Quit
Set W_App = Nothing
End Sub
Peut-on afficher Nom2 , prenom2,...... dans le document word ?
Si on ne peut pas avoir c'est champs la sans une requete, peut on
faire un boucle a l'interieur de mon code qui me permeterais de
modififier la valeur des champs nom, prenom, emploi par mom1,
prenom1, fonction1, nom2, prenom2, fonction2....(signet de word).
Peux tu m'aiguiller?
Merci pour tes réponses.
Bonne apres-midi
@+
Yannick
Eric, je te dois un grand merci
j' avance petit a petit et pour l'instant cela fonctionne
@+
Yannick
Yannick
Eric, je te dois un grand merci
j' avance petit a petit et pour l'instant cela fonctionne
@+
Yannick
Yannick
Eric, je te dois un grand merci
j' avance petit a petit et pour l'instant cela fonctionne
@+
Yannick
Yannick