Problème publipostage ACCESS - Word
Poupinou10
-
Poupinou10 -
Poupinou10 -
Bonjour,
Voilà je suis novice en code VB mais j'aimerais faire un truc qui me simplifierais la vie !!
J'ai une base de données où nous gérons nos adhérents (sous ACCESS), à partir d'un formulaire j'aimerais pouvoir générer un courrier automatiquement, juste en cliquant sur un bouton. Il faut que ce courrier ne sorte que pour l'adhérent sur lequel mon formulaire est ouvert.
Donc j'ai créée un module avec cette commande : nom MergeIt ?
Option Compare Database
Sub Publipostage_Vers_Document()
Dim wdApp As Word.Application
Dim strCheminDoc As String, strCheminFusion As String
Dim strSQL As String
strCheminDoc = "C:\Documents and Settings\FUSION.doc"
strCheminFusion = "C:\Documents and Settings\RESULTAT.doc"
strSQL = "SELECT * FROM [INTRO]"
Set wdApp = New Word.Application
With wdApp
.Documents.Open strCheminDoc
With .ActiveDocument.MailMerge
.OpenDataSource Name:=CurrentProject.FullName, _
SQLStatement:=strSQL, _
ReadOnly:=True
.Destination = wdSendToNewDocument
.Execute
End With
.ActiveDocument.SaveAs FileName:=strCheminFusion
.Quit SaveChanges:=wdDoNotSaveChanges
End With
Set wdApp = Nothing
End Sub
Puis sur mon formulaire j'ai créée un bouton avec comme commande
Option Compare Database
Private Sub cmdPublipostage_Click()
Call MergeIt
End Sub
Mais cela ne marche pas !
J'ai apparemment réussi à le faire marcher une fois mais Word ne s'était pas ouvert il m'avait juste créé un nouveau fichier.
D'avance merci, pour vos éclairages.
Je suis en WORD2003 - Visual Basic6.3 et ACCESS2002
Voilà je suis novice en code VB mais j'aimerais faire un truc qui me simplifierais la vie !!
J'ai une base de données où nous gérons nos adhérents (sous ACCESS), à partir d'un formulaire j'aimerais pouvoir générer un courrier automatiquement, juste en cliquant sur un bouton. Il faut que ce courrier ne sorte que pour l'adhérent sur lequel mon formulaire est ouvert.
Donc j'ai créée un module avec cette commande : nom MergeIt ?
Option Compare Database
Sub Publipostage_Vers_Document()
Dim wdApp As Word.Application
Dim strCheminDoc As String, strCheminFusion As String
Dim strSQL As String
strCheminDoc = "C:\Documents and Settings\FUSION.doc"
strCheminFusion = "C:\Documents and Settings\RESULTAT.doc"
strSQL = "SELECT * FROM [INTRO]"
Set wdApp = New Word.Application
With wdApp
.Documents.Open strCheminDoc
With .ActiveDocument.MailMerge
.OpenDataSource Name:=CurrentProject.FullName, _
SQLStatement:=strSQL, _
ReadOnly:=True
.Destination = wdSendToNewDocument
.Execute
End With
.ActiveDocument.SaveAs FileName:=strCheminFusion
.Quit SaveChanges:=wdDoNotSaveChanges
End With
Set wdApp = Nothing
End Sub
Puis sur mon formulaire j'ai créée un bouton avec comme commande
Option Compare Database
Private Sub cmdPublipostage_Click()
Call MergeIt
End Sub
Mais cela ne marche pas !
J'ai apparemment réussi à le faire marcher une fois mais Word ne s'était pas ouvert il m'avait juste créé un nouveau fichier.
D'avance merci, pour vos éclairages.
Je suis en WORD2003 - Visual Basic6.3 et ACCESS2002
A voir également:
- Problème publipostage ACCESS - Word
- Word 2013 - Télécharger - Traitement de texte
- Publipostage mail - Accueil - Word
- Tableau word - Guide
- Word et excel gratuit - Guide
- Espace insécable word - Guide
4 réponses
Wow!!!
Je te montre plus simple:
Tu crées dans Word le document maître, basé sur les données Access, et ensuite tu n'as plus qu'à ouvrir ce doc à partir d'Access (Bouton ou plus simple, lien hypertexte)
Je te montre plus simple:
Tu crées dans Word le document maître, basé sur les données Access, et ensuite tu n'as plus qu'à ouvrir ce doc à partir d'Access (Bouton ou plus simple, lien hypertexte)
Bonjour,
J'ai réussi à créer mon document automatique à partir d'un formulaire ACCESS.
Module :
Public Sub Publipostage_Vers_Document()
Dim wdApp As Word.Application
Dim strCheminDoc As String, strCheminFusion As String
Dim strSQL As String
strCheminDoc = "C:\Documents and Settings\FUSION.doc"
strCheminFusion = "C:\Documents and Settings\RESULTAT.doc"
strSQL = "SELECT * FROM [INTRO]"
Set wdApp = New Word.Application
With wdApp
.Documents.Open strCheminDoc
With .ActiveDocument.MailMerge
.OpenDataSource Name:=CurrentProject.FullName, _
SQLStatement:=strSQL, _
ReadOnly:=True
.Destination = wdSendToNewDocument
.Execute
End With
.ActiveDocument.SaveAs FileName:=strCheminFusion
.Quit SaveChanges:=wdDoNotSaveChanges
End With
Set wdApp = Nothing
End Sub
Avec un bouton d'exécution :
Private Sub Commande42_Click()
Call Publipostage_Vers_Document
End Sub
Donc ça marche pas trop mal.
Mais il me reste 3 petits trucs à régler :
- Word ne s'ouvre pas automatiquement, il faut que j'aille chercher le fichier et que je l'ouvre manuellement
- Sous word ma date qui est au format JJ/MM/AAAA sous ACCES devient MM/JJ/AAAA
- Comment faire pour que seul la page du formulaire en cours s'ouvre dans word et pas tout le formulaire en entier.
D'avance merci, ça fait quelques semaines que je bosse la dessus (et oui je suis novice !) et là je cale.
J'ai réussi à créer mon document automatique à partir d'un formulaire ACCESS.
Module :
Public Sub Publipostage_Vers_Document()
Dim wdApp As Word.Application
Dim strCheminDoc As String, strCheminFusion As String
Dim strSQL As String
strCheminDoc = "C:\Documents and Settings\FUSION.doc"
strCheminFusion = "C:\Documents and Settings\RESULTAT.doc"
strSQL = "SELECT * FROM [INTRO]"
Set wdApp = New Word.Application
With wdApp
.Documents.Open strCheminDoc
With .ActiveDocument.MailMerge
.OpenDataSource Name:=CurrentProject.FullName, _
SQLStatement:=strSQL, _
ReadOnly:=True
.Destination = wdSendToNewDocument
.Execute
End With
.ActiveDocument.SaveAs FileName:=strCheminFusion
.Quit SaveChanges:=wdDoNotSaveChanges
End With
Set wdApp = Nothing
End Sub
Avec un bouton d'exécution :
Private Sub Commande42_Click()
Call Publipostage_Vers_Document
End Sub
Donc ça marche pas trop mal.
Mais il me reste 3 petits trucs à régler :
- Word ne s'ouvre pas automatiquement, il faut que j'aille chercher le fichier et que je l'ouvre manuellement
- Sous word ma date qui est au format JJ/MM/AAAA sous ACCES devient MM/JJ/AAAA
- Comment faire pour que seul la page du formulaire en cours s'ouvre dans word et pas tout le formulaire en entier.
D'avance merci, ça fait quelques semaines que je bosse la dessus (et oui je suis novice !) et là je cale.