serial_xp | bonjour a tous, je recherche des informations afin que, a partir d'une base de donnée Access et grâce a une requête SQL, je puisse remplir une feuille Word réservée au publipostage.
Mon problème est que je ne sais pas comme intégré ma requête SQL pour remplir le publipostage.
Code :
- Dim CheminMonFichier As String
- Dim cheminDuDocWord As String
- Dim mvarDocumentId As Variant
- Dim ObjWord As Word.Application
- date1 = Month(CDate(ref3)) & "/" & Day(CDate(ref3)) & "/" & Year(CDate(ref3))
- cheminDuDocWord = App.Path & "\Cabs.dot"
- CheminMonFichier = App.Path & "\Absences.mdb"
- textesql = "Select eleves.nom, eleves.prenom, eleves.nomresp, eleves.prenomresp, eleves.adresse, eleves.localite, eleves.cp, eleves.classe, absences.datedep, absences.datefin, absences.duree, absences.justifier, absences.justification from absences inner join eleves on eleves.refeleve = absences.refeleve where absences.datedep = " & date1
- Set ObjWord = CreateObject("Word.application" )
- Set mvarDocumentId = ObjWord.Documents.Add(cheminDuDocWord, False)
- ObjWord.Visible = True
- ObjWord.activedocument.mailmerge.MainDocumentType = wdFormLetters
- ObjWord.activedocument.mailmerge.OpenDataSource Name:=CheminMonFichier, ConfirmConversions:=False, ReadOnly:=True, LinkToSource:=False, AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, Format:=wdOpenFormatAuto, SQLstatement:="textesql"
- With ObjWord.activedocument.mailmerge
- .SuppressBlankLines = True
- With .DataSource
- .FirstRecord = wdDefaultFirstRecord
- .LastRecord = wdDefaultLastRecord
- End With
- .Execute pause = True
- End With
-
- mvarDocumentId.Close False
- Set ObjWord = Nothing
|
Merci par avance pour votre aide !
edit : est-ce qu'un placé un objet OLE pourrai faire l'affaire?
edit2 : la solution la plus simple est de passer par un fichier séquentielle (.txt ou .ini) et le tour est joué. Je cherchais plutot a intégrer directement la requete entre l'acces a la DB et le publipostage, mais cette solution fait l'affaire en attendant. Message édité par serial_xp le 17-08-2008 à 02:47:02
|