(J'espère avoir poster au bon endroit)


Je suis allé voir ici : http://heureuxoli.developpez.com/publipostage/
afin de faire un publipostage.

Sa méthode avec le doc BM Publipostage.doc a l'air de bien marcher
Toutefois, je voudrais modifier un peut:

La méthode qui est donnée, m'imprime tout les enregistrements (normal c'est la fonction du publipostage) mais moi (car je suis pas compliqué), je voudrais le faire sur un seul enregistrement avec trois conditions :
- Que sa le fasse sur une requête (pour ca pas de problème)
- Que se soit en fonction de la valeur d'un champs d'un formulaire encours (exemple champs "Réf" du formulaire "Form1")
- Mais aussi en fonction de la valeur d'un champs d'un autre formulaire encours (exemple champs "Ad" du formulaire "Form2")

Par exemple, sa m'imprime le doc de l'enregistrement de la requête dont le champ Réf = Machin et le champ Ad = Truc


Voici le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Sub MergeBM()
Dim wApp As Word.Application
Dim chemin As String
Dim rs As DAO.Recordset
Dim db As DAO.Database
Dim sql As String
sql = "SELECT * from Employés"
 
Set db = CurrentDb
Set rs = db.OpenRecordset(sql)
Set wApp = New Word.Application
    chemin = currentproject.path
wApp.Visible = True
 
While Not rs.EOF
With wApp
    .Documents.Open (chemin & _\BM Publipostage.doc_)
    .ActiveDocument.Bookmarks("nom").Range.Text = rs.Fields("nom")
    .ActiveDocument.Bookmarks("prenom").Range.Text = rs.Fields("prénom")
    .ActiveDocument.PrintOut
    .ActiveDocument.Close (wdDoNotSaveChanges)
End With
rs.MoveNext
Wend
rs.Close
Set rs = Nothing
db.Close
Set db = Nothing
 
Set wApp = Nothing
End Sub